HAVING
fungerar på den sammanfattade raden - WHERE
fungerar på hela tabellen före GROUP BY
tillämpas. (Du kan inte lägga till GROUP BY
åt sidan, HAVING
är en klausul som är reserverad för användning med GROUP BY
- utelämna GROUP BY
ändrar inte den implicita handlingen som sker bakom kulisserna).
Det är också viktigt att notera att på grund av detta, WHERE
kan använda ett index medan HAVING
kan inte. (I supertriviala ogrupperade resultatuppsättningar kan du teoretiskt använda ett index för att HAVING
, men jag har aldrig sett en frågeoptimerare faktiskt implementerad på detta sätt).