Como remover duplicados em SQL
Básico5 min
O problema
A consulta retorna a mesma venda repetida várias vezes.
Como funciona
Duplicidade normalmente vem do join. Se o dado realmente repete, use uma numeração por partição e mantenha a primeira linha.
Exemplo
SQL
WITH ordenado AS (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY pedido_id
ORDER BY atualizado_em DESC
) AS rn
FROM pedidos
)
SELECT * FROM ordenado WHERE rn = 1;Resultado
Uma linha por pedido, sempre a versão mais recente.
Quando usar
- Tabelas de staging com reprocessamento
- Cargas incrementais
Quando evitar
- Quando DISTINCT simples já resolve
Resolve Melhor
Antes de deduplicar, confirme a granularidade esperada da tabela. Muitas vezes o problema é o join, não o dado.