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 BYnas 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.