Sobes.tech
Middle

Care sunt diferențele dintre operatorii WHERE și HAVING în SQL?

sobes.tech AI

Răspuns de la AI

WHERE filtrează rândurile înainte de grupare (GROUP BY), iar HAVING filtrează grupurile după grupare. WHERE poate folosi coloane care nu sunt în SELECT, HAVING de obicei folosește funcții agregate sau coloane prezente în GROUP BY.

Exemplu:

SELECT
    category,
    COUNT(*) as total_items
FROM
    products
WHERE
    price > 10 // Filtrăm produsele înainte de gruparea pe categorii
GROUP BY
    category
HAVING
    COUNT(*) > 5; // Filtrăm categoriile cu mai mult de 5 produse

Comparativ:

Operator Scop Se aplică la Poate folosi funcții agregate Ordinea față de GROUP BY
WHERE Filtrarea rândurilor Rânduri individuale Nu Înainte
HAVING Filtrarea grupurilor Grupuri de rânduri Da După