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.