HAVING
fungerer på den opsummerede række - WHERE
opererer på hele tabellen før GROUP BY
anvendes. (Du kan ikke sætte GROUP BY
til side, HAVING
er en klausul reserveret til brug med GROUP BY
- udelade GROUP BY
ændrer ikke den implicitte handling, der finder sted bag kulisserne).
Det er også vigtigt at bemærke, at på grund af dette, WHERE
kan bruge et indeks, mens du HAVING
kan ikke. (I super trivielle u-grupperede resultatsæt kan du teoretisk bruge et indeks for HAVING
, men jeg har aldrig set en forespørgselsoptimering faktisk implementeret på denne måde).