Have vs Where-klausul i SQL
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.