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>

HAVING> total>70>

Š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.