Sobes.tech
Junior — Middle

Koja je razlika između uslova WHERE i HAVING pri radu sa SQL upitima?

sobes.tech АИ

Одговор од АИ

WHERE и HAVING су услови за филтрирање у SQL-у, али се примењују у различитим фазама обраде података.

  • WHERE филтрира редове пре груписања. Користи се за избор записа на нивоу оригиналних података.
  • HAVING филтрира групе формиране командом GROUP BY. Примењује се након агрегирања.

Пример:

SELECT одељење, COUNT(*) као број_запослених
FROM запослени
WHERE плата > 50000  -- филтрирамо запослене са платом > 50000
GROUP BY одељење
HAVING COUNT(*) > 10      -- изабиремо одељења са више од 10 запослених

Овде се прво бирају запослени са платом изнад 50000 (WHERE), затим се подаци групишу по одељењима, и на крају се бирају само она одељења где је број запослених већи од 10 (HAVING).