Klavzula Having vs Where v SQL
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.