logo

Met vs Where-clausule in SQL

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>

HAVING>total>70>

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.