Como contar quantos registros existem em cada grupo?

Podemos contar registros dentro de cada grupo no SQL utilizando COUNT() junto com GROUP BY para segmentar os dados.

Como contar quantos registros existem em cada grupo?

No SQL, a função COUNT() combinada com GROUP BY permite contar a quantidade de registros dentro de cada grupo, sendo essencial para gerar relatórios detalhados.

Contando registros agrupados

Se quisermos saber quantos pedidos foram feitos por cada cliente:

SELECT cliente_id, COUNT(*) AS total_pedidos 
FROM pedidos 
GROUP BY cliente_id;

Isso retorna a quantidade de pedidos por cliente.

Contando registros distintos em cada grupo

Para contar apenas produtos distintos comprados por cada cliente:

SELECT cliente_id, COUNT(DISTINCT produto_id) AS produtos_diferentes 
FROM pedidos 
GROUP BY cliente_id;

Aqui, eliminamos a contagem de produtos repetidos.

Contando registros por categorias

Se quisermos contar quantos produtos existem em cada categoria:

SELECT categoria, COUNT(*) AS total_produtos 
FROM produtos 
GROUP BY categoria;

Essa consulta retorna a quantidade de produtos disponíveis em cada categoria.

Filtrando grupos com HAVING

Podemos usar HAVING para filtrar os grupos:

SELECT cliente_id, COUNT(*) AS total_pedidos 
FROM pedidos 
GROUP BY cliente_id 
HAVING COUNT(*) > 5;

Isso retorna apenas clientes que fizeram mais de 5 pedidos.

Cuidados ao contar registros agrupados

  • O uso de GROUP BY é obrigatório quando utilizamos COUNT() para segmentação.
  • Se precisar contar apenas registros distintos, utilize COUNT(DISTINCT coluna).
  • Para filtrar resultados após a contagem, utilize HAVING, não WHERE.

A contagem de registros agrupados no SQL é fundamental para relatórios de negócios, análise de desempenho e segmentação de dados. Em um e-commerce, podemos usá-la para saber quantos produtos existem por categoria ou quantos pedidos um cliente realizou. Em sistemas de RH, podemos contar quantos funcionários estão em cada departamento. O uso adequado do COUNT() e do GROUP BY facilita a análise de dados e melhora a eficiência das consultas.

Algumas aplicações:

  • Calcular a quantidade de pedidos por cliente
  • Contar quantos funcionários existem em cada departamento
  • Listar quantos produtos estão cadastrados por categoria
  • Gerar relatórios de usuários ativos por mês
  • Monitorar acessos a páginas de um site por região

Dicas para quem está começando

  • Use COUNT(*) para contar todos os registros de um grupo
  • Se precisar contar apenas valores únicos, utilize COUNT(DISTINCT coluna)
  • Certifique-se de incluir GROUP BY na consulta para segmentação correta
  • Para filtrar grupos após a contagem, utilize HAVING
  • Teste a consulta sem GROUP BY primeiro para entender os dados

Contribuições de Rodrigo Martins

Compartilhe este tutorial: Como contar quantos registros existem em cada grupo?

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre WHERE e HAVING no SQL?

A principal diferença entre WHERE e HAVING no SQL é que WHERE filtra registros individuais antes do agrupamento, enquanto HAVING filtra grupos após o agrupamento.

Tutorial anterior

Como calcular a média de valores agrupados no SQL?

Podemos calcular a média de valores agrupados no SQL utilizando a função AVG() junto com GROUP BY para segmentar os dados.

Próximo tutorial