Middle
Quais são as diferenças entre os operadores WHERE e HAVING em SQL?
sobes.tech IA
Resposta da IA
WHERE filtra as linhas antes de agrupar (GROUP BY), e HAVING filtra os grupos depois de agrupar. WHERE pode usar colunas que não estão em SELECT, HAVING geralmente usa funções de agregação ou colunas presentes em GROUP BY.
Exemplo:
SELECT
category,
COUNT(*) as total_items
FROM
products
WHERE
price > 10 // Filtra os produtos antes de agrupar por categoria
GROUP BY
category
HAVING
COUNT(*) > 5; // Filtra os grupos de categorias com mais de 5 produtos
Comparação:
| Operador | Propósito | Aplica-se a | Pode usar funções de agregação | Ordem de execução em relação ao GROUP BY |
|---|---|---|---|---|
WHERE |
Filtra linhas | Linhas individuais | Não | Antes |
HAVING |
Filtra grupos | Grupos de linhas | Sim | Depois |