Group By
A cláusula GROUP BY
no PostgreSQL é usada para agrupar linhas que têm os mesmos valores em colunas específicas em conjuntos de resumo, como a contagem de linhas, a soma de valores em uma coluna, a obtenção do valor médio, entre outros. É frequentemente usado em conjunto com funções agregadas como COUNT()
, SUM()
, AVG()
, MAX()
, MIN()
, etc.
Aqui está a sintaxe básica da cláusula GROUP BY
:
SELECT coluna1, funcao_agregada(coluna2), ...
FROM nome_da_tabela
GROUP BY coluna1;
coluna1
: Coluna pela qual você deseja agrupar os resultados.funcao_agregada(coluna2)
: Função agregada que você deseja aplicar àcoluna2
.
Aqui estão alguns exemplos de como usar a cláusula GROUP BY
:
1. Contar o Número de Linhas por Categoria:
SELECT cidade, COUNT(*)
FROM alunos
GROUP BY cidade;
Este comando conta o número de alunos em cada cidade.
2. Calcular a Média de Notas por Disciplina:
SELECT disciplina, AVG(nota)
FROM notas
GROUP BY disciplina;
Este comando calcula a média das notas para cada disciplina.
3. Encontrar o Valor Máximo e Mínimo por Categoria:
SELECT categoria, MAX(preco), MIN(preco)
FROM produtos
GROUP BY categoria;
Este comando encontra o preço máximo e mínimo para cada categoria de produtos.
4. Agrupar por Múltiplas Colunas:
SELECT cidade, genero, AVG(idade)
FROM clientes
GROUP BY cidade, genero;
Este comando agrupa os resultados primeiro por cidade e, dentro de cada cidade, por gênero, calculando a idade média dos clientes para cada combinação de cidade e gênero.
A cláusula GROUP BY
é poderosa quando você precisa analisar dados agregados em diferentes categorias ou grupos. Você também pode usar a cláusula HAVING
para filtrar os resultados de grupos, semelhante ao WHERE
, mas aplicado após a agregação.