602SQL-┌plnß dokumentace Index   Tisk  

Sbφrka dotaz∙ û str. 4

P°φklad 7

Zadßnφ: VypiÜte seznam odb∞ratel∙, pr∙m∞rnou hodnotu jejich obratu, s vylouΦenφm t∞ch, kte°φ odebrali zbo₧φ pouze jednou.

SQL:

    SELECT Firmy.nazev, AVG(Faktury.castka),COUNT(*)
    FROM Faktury, Firmy
    WHERE (Faktury.firma = Firmy.cislo) AND (Firmy.status='O')
    GROUP BY Firmy.nazev
    HAVING COUNT(*)>1

Poznßmky:

a) Sloupec STATUS je typu Znak (Char) a proto se musφ zapisovat v apostrofech (') a nikoli v uvozovkßch (") jako typ °et∞zec.

b) VÜimn∞te si, Φφm se od sebe liÜφ podmφnky WHERE a HAVING. Podmφnka WHERE se dß uplatnit jeÜt∞ p°ed sestavenφm skupin, zatφmco podmφnka HAVING se m∙₧e vyhodnotit a₧ po sestavenφ skupin.

P°φklad 8

Zadßnφ: Zjist∞te pr∙m∞rnou dobu zaplacenφ faktur odb∞rateli.

SQL:

    SELECT nazev, AVG(zaplaceno-dat1)
    FROM Faktury, Firmy
    WHERE Faktury.firma= Firmy.cislo
      AND (druh=2 AND zaplaceno IS NOT NULL)
    GROUP BY Firmy.nazev

Poznßmky:

a) VÜimn∞te si, ₧e agregaΦnφ funkce m∙₧e mφt za parametr i v²raz.

b) V²sledek agregaΦnφ funkce bude v₧dy tent²₧ jako typ argumentu, proto je pr∙m∞rn² poΦet dn∙ uveden jako celΘ Φφslo.