Sobes.tech
Middle

Standardno pitanje o SQL: u čemu je razlika između WHERE i HAVING?

sobes.tech АИ

Одговор од АИ

Glavna razlika između WHERE i HAVING u SQL-u je u fazi u kojoj filtriraju podatke:

  • WHERE filtrira redove pre grupisanja. Koristi se za ograničavanje početnog skupa podataka.
  • HAVING filtrira grupe nakon primene agregatnih funkcija i grupisanja (GROUP BY).

Primer:

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

Ovde WHERE ograničava početne redove, a HAVING završne grupe.