Rozdíl mezi klauzulí have a where v SQL je ten, že klauzule where cann ot lze použít s agregáty, ale klauzule mít může.
The kde klauzule funguje na řádkových datech, nikoli na agregovaných datech. Podívejme se níže na tabulku „Značky“.
Skóre studentského kurzu
a c1 40
a c2 50
b c3 60
d c1 70
e c2 80
Zvažte dotaz
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
To by vybralo data řádek po řádku.
The mít doložka funguje na agregovaných datech.
Například výstup níže uvedeného dotazu
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Student celkem
90
b 60
d 70
a 80
Když použijeme výše uvedený dotaz, dostaneme
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Student celkem
90
a 80
Poznámka: Nejde o předdefinované pravidlo, ale v mnoha SQL dotazech používáme WHERE před GROUP BY a HAVING po GROUP BY. Klauzule Where funguje jako a předfiltr kde jako Mít jako a post filtr.