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ă |