Sobes.tech
Junior — Middle

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

sobes.tech AI

Răspuns de la AI

Diferența principală dintre WHERE și HAVING în SQL:

  • WHERE filtrează rândurile înainte de grupare (GROUP BY). Se aplică la înregistrările individuale ale tabelului.
  • HAVING filtrează grupurile după efectuarea grupării. Este utilizat pentru condiții asupra funcțiilor agregate (de exemplu, COUNT, SUM).

Exemplu:

SELECT departament, COUNT(*) ca 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 departamentele cu mai mult de 10 angajați

Aici, WHERE selectează rândurile pentru grupare, iar HAVING filtrează datele deja grupate.