Klauzula Mať vs kde v SQL

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>

HAVING> total>70>

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