Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Em quais situações o HAVING pode ser utilizado sem o GROUP BY?

É dito que o HAVING pode ser utilizado sem necessariamente está associado ao GROUP BY, mas vai haver limitações, quais são essas limitações? E em quais situações eu iria poder utilizar o HAVING sem o GROUP BY?

Menção: "HAVING pode ser usado sem GROUP BY, mas seu uso nesse caso é limitado e menos comum."

1 resposta
solução!

Bom dia, Tiago!

A cláusula HAVING é geralmente usada em conjunto com GROUP BY para filtrar grupos de registros após a agregação. No entanto, é possível usar HAVING sem GROUP BY, embora isso seja menos comum e tenha algumas limitações.

Limitações:

  • Escopo de Aplicação: Sem GROUP BY, a cláusula HAVING se aplica a toda a consulta como um único grupo. Isso significa que você não está filtrando grupos de registros, mas sim a consulta inteira.
  • Redundância: Muitas vezes, o que você pode fazer com HAVING sem GROUP BY pode ser feito com a cláusula WHERE, que é mais intuitiva e direta.

Situações de Uso:

  • Funções de Agregação: Quando você quer aplicar uma condição a uma função de agregação sem agrupar os resultados. Por exemplo, se você quiser filtrar resultados baseados em uma agregação, mas não precisa agrupar por nenhuma coluna.

Exemplo Prático

Vamos imaginar que você tem uma tabela vendas e quer encontrar registros onde a soma de todas as vendas seja maior que 10.000. Você pode fazer isso com HAVING sem GROUP BY:

SELECT SUM(valor_venda) AS total_vendas
FROM vendas
HAVING total_vendas > 10000;

Neste caso, HAVING está filtrando o resultado da função de agregação SUM(valor_venda).

Comparação com WHERE

A mesma consulta poderia ser feita com WHERE se não estivéssemos usando uma função de agregação:

SELECT *
FROM vendas
WHERE valor_venda > 10000;

Mas note que WHERE não pode ser usado para filtrar o resultado de uma função de agregação como SUM, AVG, etc. Para isso, HAVING é a escolha correta.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!