Junior — Middle
Mis vahe on HAVING ja WHERE operaatoritel SQL-is ja millal neid kasutada?
sobes.tech AI
Vastus AI-lt
Kusimus WHERE kasutatakse enne andmete rühmitamist ridade filtreerimiseks. See valib read, mis osalevad edasistes operatsioonides, näiteks agregaatfunktsioonides.
Kusimus HAVING rakendub juba rühmitatud andmete filtreerimiseks, st pärast GROUP BY täitmist. See võimaldab filtreerida gruppe vastavalt agregatsioonitingimustele.
Näide:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000 -- ridade filtreerimine palga järgi
GROUP BY department
HAVING COUNT(*) > 5 -- gruppide filtreerimine töötajate arvu järgi
Kokkuvõte:
- WHERE filtreerib üksikandmeid enne rühmitamist.
- HAVING filtreerib gruppe pärast rühmitamist.
Kasuta WHERE-i tingimustele üksikutele väljadele, HAVING-i tingimustele agregaatfunktsioonidele.