Junior — Middle
Explicați diferențele dintre operatorul HAVING și condiția WHERE în SQL și în ce cazuri trebuie utilizate.
sobes.tech AI
Răspuns de la AI
În SQL, condiția WHERE filtrează rândurile înainte de grupare, în timp ce HAVING face acest lucru după grupare.
- WHERE se aplică pe rândurile individuale ale tabelului și limitează setul de date care va fi agregat.
- HAVING se aplică rezultatelor funcțiilor de agregare și filtrează grupurile formate de instrucțiunea GROUP BY.
Exemplu:
SELECT departament, COUNT(*) as număr_angajați
FROM angajați
WHERE salariu > 50000 -- filtrăm angajații cu salariu peste 50000
GROUP BY departament
HAVING COUNT(*) > 10 -- selectăm departamente cu mai mult de 10 angajați
Utilizați WHERE pentru filtrarea datelor inițiale și HAVING pentru filtrarea rezultatelor agregate.