Sobes.tech
Junior — Middle

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

sobes.tech АИ

Одговор од АИ

U SQL-u, uslovi WHERE i HAVING koriste se za filtriranje podataka, ali se primenjuju u različitim fazama obrade upita:

  • WHERE filtrira redove pre grupisanja i agregacije. Ograničava skup podataka koji će se koristiti u upitu.
  • HAVING filtrira grupe nakon primene agregatnih funkcija (npr. SUM, COUNT, AVG). Koristi se za ograničavanje rezultata agregacije.

Primer:

SELECT odeljenje, COUNT(*) kao broj_zaposlenih
FROM zaposleni
WHERE plata > 50000       -- filtrira zaposlene sa platom > 50000
GROUP BY odeljenje
HAVING COUNT(*) > 10;        -- bira odeljenja sa više od 10 zaposlenih

Ovde, WHERE bira zaposlene sa platom većom od 50000, a HAVING filtrira odeljenja koja imaju više od 10 zaposlenih.