Para que serve a cláusula HAVING no SQL?
Ela é usada para filtrar os resultados de grupos após o uso do GROUP BY. Funciona como o WHERE, mas aplicado aos grupos agregados.
Qual a diferença entre WHERE e HAVING?
WHERE: filtra antes do agrupamento.
HAVING: filtra depois do agrupamento (sobre resultados agregados).
Como selecionar apenas os estados com mais de 10 clientes?
SELECT estado, COUNT()
FROM clientes
GROUP BY estado
HAVING COUNT() > 10;
Posso usar HAVING sem GROUP BY?
Sim, mas só faz sentido quando usa funções agregadas. Exemplo:
SELECT COUNT()
FROM clientes
HAVING COUNT() > 100;
Como retornar apenas os produtos com média de preço acima de R$50?
SELECT categoria, AVG(preco)
FROM produtos
GROUP BY categoria
HAVING AVG(preco) > 50;
Posso usar HAVING junto com WHERE?
Sim! WHERE filtra linhas antes do agrupamento e HAVING filtra os grupos depois.
Em qual ordem HAVING aparece numa consulta SQL?
SELECT …
FROM …
WHERE …
GROUP BY …
HAVING …
ORDER BY …
Qual é a principal limitação do HAVING?
O HAVING não pode ser usado para filtrar resultados antes da agregação, pois ele opera sobre os resultados já agrupados.
Como podemos substituir o HAVING por subconsultas?
Podemos executar uma consulta com GROUP BY e, em seguida, usar o resultado como uma tabela intermediária em uma nova consulta, aplicando um filtro na subconsulta.
Qual é a estrutura básica de uma subconsulta que substitui o HAVING?
Quais são as vantagens de usar subconsultas em vez de HAVING?
As subconsultas oferecem maior flexibilidade e podem ser usadas em uma variedade de situações, permitindo consultas mais complexas e aninhadas.
Como ficaria uma consulta que usa HAVING para filtrar estados com soma de funcionários maior ou igual a 60?
Como ficaria a mesma consulta usando subconsulta?
Redesenhe esta consulta usando subconsultas.