logo

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.