Razlika med klavzulo having in where v SQL je v tem, da klavzula where ne more ot uporabiti z agregati, lahko pa ima stavek.
The kje klavzula deluje na podatkih vrstice, ne na združenih podatkih. Oglejmo si spodnjo tabelo 'Oznake'.
Študentski rezultat tečaja
a c1 40
c2 50
b c3 60
d c1 70
e c2 80
Razmislite o poizvedbi
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
To bi izbralo podatke vrstico za vrstico.
The imeti klavzula deluje na agregiranih podatkih.
Na primer izhod spodnje poizvedbe
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Študent Skupaj
a 90
b 60
d 70
in 80
Ko uporabimo zgornjo poizvedbo, dobimo
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Študent Skupaj
a 90
in 80
Opomba: to ni vnaprej določeno pravilo, vendar v precejšnjem številu poizvedb SQL uporabljamo WHERE pred GROUP BY in HAVING za GROUP BY. Klavzula Where deluje kot a predfilter kjer kot imeti kot a post filter.