Forskellen mellem have- og where-klausulen i SQL er, at where-klausulen kan ot bruges med aggregater, men have-klausulen kan.
Det hvor klausul fungerer på rækkens data, ikke på aggregerede data. Lad os overveje nedenstående tabel 'Mærker'.
Kursusresultat for studerende
en c1 40
en c2 50
b c3 60
d c1 70
e c2 80
Overvej forespørgslen
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
Dette ville vælge data række for række.
Det at have klausul fungerer på aggregerede data.
For eksempel output af nedenstående forespørgsel
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Elev i alt
en 90
b 60
d 70
og 80
Når vi ansøger at have i ovenstående forespørgsel, får vi
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Elev i alt
en 90
og 80
Bemærk: Det er ikke en foruddefineret regel, men i en lang række af SQL-forespørgslerne bruger vi WHERE før GROUP BY og HAVING efter GROUP BY. Hvor-klausulen fungerer som en forfilter hvor som at have som en post filter.