Sobes.tech
Junior — Middle

Care este diferența dintre condițiile WHERE și HAVING atunci când lucrați cu interogări SQL?

sobes.tech AI

Răspuns de la AI

În SQL, condițiile WHERE și HAVING sunt utilizate pentru filtrarea datelor, dar se aplică în etape diferite ale procesării interogării:

  • WHERE filtrează rândurile înainte de grupare și agregare. Limitează setul de date utilizat în interogare.
  • HAVING filtrează grupurile după aplicarea funcțiilor de agregare (de exemplu, SUM, COUNT, AVG). Este folosit pentru a limita rezultatele agregării.

Exemplu:

SELECT departament, COUNT(*) ca numar_angajati
FROM angajati
WHERE salariu > 50000       -- filtrăm angajații cu salariu > 50000
GROUP BY departament
HAVING COUNT(*) > 10;        -- selectăm departamente cu mai mult de 10 angajați

Aici, WHERE selectează angajații cu salariu peste 50000, iar HAVING filtrează departamentele cu mai mult de 10 angajați.