Het verschil tussen de clausule 'have' en 'where' in SQL is dat de 'where'-clausule cann ot kan worden gebruikt met aggregaten, maar de clausule hebben kan dat wel.
De waar De clausule werkt op rijgegevens, niet op geaggregeerde gegevens. Laten we onderstaande tabel ‘Merken’ bekijken.
Cursusscore van studenten
een c1 40
een c2 50
b c3 60
d c1 70
e c2 80
Denk na over de vraag
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
Hiermee worden gegevens rij voor rij geselecteerd.
De hebben clausule werkt op geaggregeerde gegevens.
Bijvoorbeeld de uitvoer van onderstaande query
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Student Totaal
een 90
b 60
d 70
en 80
Wanneer we bovenstaande vraag toepassen, krijgen we
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Student Totaal
een 90
en 80
Opmerking: het is geen vooraf gedefinieerde regel, maar in een groot aantal SQL-query's gebruiken we WHERE vóór GROUP BY en HAVING na GROUP BY. De Where-clausule fungeert als een voorfilter waar als Hebbend als een postfilter.