Sobes.tech
Middle

Como agrupar dados em SQL para não perder valores únicos e evitar duplicatas?

sobes.tech IA

Resposta da IA

Para agrupar dados em SQL e ao mesmo tempo manter valores únicos sem duplicação, é importante usar corretamente as funções de agregação e as chaves de agrupamento.

Abordagens principais:

  • Use GROUP BY nas colunas que determinam a unicidade do grupo.
  • Para as outras colunas, aplique funções de agregação, como MIN(), MAX(), COUNT(DISTINCT ...), STRING_AGG() (dependendo do SGBD), para obter valores únicos ou agregados.
  • Se precisar obter valores únicos de várias linhas em um grupo, pode usar a função ARRAY_AGG(DISTINCT column) ou similares, se o seu SGBD suportar.

Exemplo (PostgreSQL):

SELECT user_id,
       ARRAY_AGG(DISTINCT product_id) AS unique_products
FROM sales
GROUP BY user_id;

Esta consulta agrupa as vendas por usuário e retorna uma lista de produtos únicos para cada usuário sem duplicação.

Se o seu SGBD não suportar agregação com DISTINCT, pode usar subconsultas ou CTEs para remover duplicados previamente.