Rozdiel medzi klauzulou have a where v SQL je v tom, že klauzula where cann ot použiť s agregátmi, ale klauzula mať môže.
The kde klauzula funguje na riadkových údajoch, nie na agregovaných údajoch. Pozrime sa nižšie na tabuľku „Značky“.
Skóre študentského kurzu
a c1 40
a c2 50
b c3 60
d c1 70
e c2 80
Zvážte dopyt
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
Tým by sa vybrali údaje riadok po riadku.
The majúce doložka funguje na agregovaných údajoch.
Napríklad výstup nižšie uvedeného dotazu
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Študent celkom
90
b 60
d 70
a 80
Keď použijeme vyššie uvedený dotaz, dostaneme
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Študent celkom
90
a 80
Poznámka: Nie je to preddefinované pravidlo, ale vo veľkom množstve SQL dotazov používame WHERE pred GROUP BY a HAVING po GROUP BY. Klauzula Where funguje ako a predfilter kde ako Mať ako a post filter.