Having
A cláusula HAVING no PostgreSQL é usada em conjunto com a cláusula GROUP BY para filtrar os resultados de grupos agregados baseados em condições específicas. É semelhante à cláusula WHERE, mas é usada para filtrar grupos de resultados, não linhas individuais.
Aqui está a sintaxe básica da cláusula HAVING:
SELECT coluna1, função_agregada(coluna2), ...
FROM nome_da_tabela
GROUP BY coluna1
HAVING condição;
coluna1: Coluna pela qual você deseja agrupar os resultados.função_agregada(coluna2): Função agregada que você deseja aplicar àcoluna2.condição: Condição pela qual você deseja filtrar grupos. Semelhante à cláusulaWHERE, mas aplicada após a agregação.
Aqui está um exemplo prático para entender como usar a cláusula HAVING:
Exemplo:
Suponha que você tenha uma tabela chamada vendas com as colunas produto, quantidade e preco. Você deseja encontrar os produtos cujo total de vendas (quantidade * preço) é maior que 1000.
SELECT produto, SUM(quantidade * preco) as total_vendas
FROM vendas
GROUP BY produto
HAVING SUM(quantidade * preco) > 1000;
Neste exemplo, a cláusula HAVING é usada para filtrar grupos de resultados onde o total de vendas é maior que 1000.
A cláusula HAVING é útil quando você precisa aplicar condições às funções agregadas, como SUM(), AVG(), COUNT(), etc., após agrupar os dados. Ele permite que você filtre grupos com base em valores calculados a partir das colunas agrupadas.
