Junior — Middle
Mis vahe on HAVING ja WHERE tingimustel SQL-päringute koostamisel?
sobes.tech AI
Vastus AI-lt
SQL-is kasutatakse WHERE ja HAVING tingimusi andmete filtreerimiseks, kuid need rakendatakse erinevates päringu töötlemise etappides:
- WHERE filtreerib ridu enne rühmitamist. Seda kasutatakse andmekogumi piiramiseks, mis hakkab kokku koguma.
- HAVING filtreerib gruppe pärast aggregaatfunktsioonide (näiteks SUM, COUNT) rakendamist.
Näide:
SELECT osakond, COUNT(*) kui töötajate_arv
FROM töötajad
WHERE palk > 50000 -- filtratsioon palga järgi enne rühmitamist
GROUP BY osakond
HAVING COUNT(*) > 10; -- filtratsioon gruppidele, kus on rohkem kui 10 töötajat
Siin valitakse esmalt töötajad, kelle palk on üle 50000 (WHERE), seejärel rühmitatakse andmed osakondade kaupa ning ainult osakonnad, kus on rohkem kui 10 töötajat, läbivad HAVING filtri.