Sobes.tech
Junior — Middle

Mis vahe on tingimustel WHERE ja HAVING, töötades SQL-päringutega?

sobes.tech AI

Vastus AI-lt

WHERE ja HAVING on filtritingimused SQL-is, kuid need rakenduvad erinevatel andmetöötlusetappidel.

  • WHERE filtreerib read enne rühmitamist. Seda kasutatakse andmete algtaseme kirjevalikuks.
  • HAVING filtreerib GROUP BY käsuga moodustatud rühmi. Rakendatakse pärast agregatsiooni.

Näide:

SELECT osakond, COUNT(*) kui töötajate_arv
FROM töötajad
WHERE palk > 50000  -- filtreerime töötajaid, kelle palk on > 50000
GROUP BY osakond
HAVING COUNT(*) > 10      -- valime osakonnad, kus on rohkem kui 10 töötajat

Siin valitakse esmalt töötajad, kelle palk on üle 50000 (WHERE), seejärel grupeeritakse andmed osakondade kaupa ning lõpuks valitakse ainult need osakonnad, kus töötajate arv on suurem kui 10 (HAVING).