Diferența dintre clauza have și where din SQL este că clauza where cann ot poate fi folosit cu agregate, dar clauza have poate.
The Unde clauza funcționează pe datele rândului, nu pe datele agregate. Să luăm în considerare tabelul de mai jos „Marcă”.
Scorul cursului studentului
a c1 40
a c2 50
b c3 60
d c1 70
e c2 80
Luați în considerare interogarea
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
Aceasta ar selecta datele rând cu rând.
The având clauza funcționează pe date agregate.
De exemplu, rezultatul interogării de mai jos
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Total student
un 90
b 60
d 70
și 80
Când aplicăm având în interogarea de mai sus, obținem
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Total student
un 90
și 80
Notă: Nu este o regulă predefinită, dar într-un număr bun de interogări SQL, folosim WHERE înainte de GROUP BY și HAVING după GROUP BY. Clauza Where acționează ca a prefiltru unde ca Având ca a post filtru.