SELECT met HAVING
Last updated
Was this helpful?
Last updated
Was this helpful?
(ondertiteling beschikbaar)
Met de WHERE
-clausule kon je voorwaarden uitdrukken voor het selecteren (of updaten of wissen) van records. Je kan met WHERE
echter geen voorwaarden uitdrukken op kolommen die vermeld zijn in de GROUP BY
-clause of op geaggregeerde waarden. Met andere woorden, dit gaat niet:
Ook dit zal niet werken:
Dat komt omdat WHERE
rij per rij bekijkt en beslist of die rij behouden of verworpen wordt.
Als je voorwaarden op gegroepeerde data wil uitdrukken, maak je gebruik van HAVING
(0050__SelectHonden.sql
) en (0051__SelectHonden.sql
):
In het kort: voor voorwaarden op kolommen in een GROUP BY
of op geaggregeerde waarden gebruik je HAVING
, voor andere voorwaarden gebruik je WHERE
.
Er bestaan queries die je hetzelfde resultaat opleveren, of je nu WHERE
of HAVING
gebruikt. Dat betekent niet dat ze inwisselbaar zijn. Wat achter de schermen gebeurt, is wel degelijk verschillend. Soms zijn er gewoon verschillende werkwijzen die tot hetzelfde resultaat leiden.
In MySQL kan je in een HAVING
-clausule ook verwijzen naar bepaalde andere kolommen, maar wordt dit afgeraden.