Forskjellen mellom ha- og where-leddet i SQL er at where-leddet kan ot brukes med aggregater, men ha-klausulen kan.
De hvor klausul fungerer på rads data, ikke på aggregerte data. La oss se på tabellen nedenfor 'merker'.
Poengsum for studentkurs
en c1 40
en c2 50
b c3 60
d c1 70
e c2 80
Vurder søket
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
Dette vil velge data rad for rad.
De å ha klausulen fungerer på aggregerte data.
For eksempel utdata fra spørringen nedenfor
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Student totalt
en 90
b 60
d 70
og 80
Når vi søker å ha i forespørselen ovenfor, får vi
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Student totalt
en 90
og 80
Merk: Det er ikke en forhåndsdefinert regel, men i en god del av SQL-spørringene bruker vi WHERE før GROUP BY og HAVING etter GROUP BY. Hvor-klausulen fungerer som en forfilter hvor som å ha som en postfilter.