Como posso identificar registros duplicados em uma tabela?

Como posso identificar registros duplicados em uma tabela?

Para identificar registros duplicados em uma tabela, você vai usar o GROUP BY cláusula da instrução SELECT. Vamos  criar a tabela e inserir os dados para que possamos ver como fazer. Sua instrução SQL ficará da seguinte forma:

CRIANDO TABELA E INSERINDO OS DADOS:

[sourcecode language=”sql”]

CREATE TABLE T_REGISTRODUPLICADO
(
CODIGO INT NOT NULL,
DESCRICAO VARCHAR(50)
);

INSERT INTO T_REGISTRODUPLICADO (CODIGO,DESCRICAO) VALUES (1, ‘REGISTRO 1’);
INSERT INTO T_REGISTRODUPLICADO (CODIGO,DESCRICAO) VALUES (2, ‘REGISTRO 2’);
INSERT INTO T_REGISTRODUPLICADO (CODIGO,DESCRICAO) VALUES (3, ‘REGISTRO 3’);
INSERT INTO T_REGISTRODUPLICADO (CODIGO,DESCRICAO) VALUES (1, ‘REGISTRO 1’);
INSERT INTO T_REGISTRODUPLICADO (CODIGO,DESCRICAO) VALUES (1, ‘REGISTRO 1’);
INSERT INTO T_REGISTRODUPLICADO (CODIGO,DESCRICAO) VALUES (1, ‘REGISTRO 1’);

[/sourcecode]

Como ver os registros duplicados:

[sourcecode language=”sql”]

SELECT CODIGO, DESCRICAO FROM T_REGISTRODUPLICADO
GROUP BY CODIGO, DESCRICAO
HAVING COUNT(*)>1

[/sourcecode]

Esta consulta irá lhe retornar os registros duplicados com base no código e descrição. Se você quer saber quantas vezes esses registros são duplicados na tabela, você pode simplesmente incluir o COUNT (*) na saída:

[sourcecode language=”sql”]

SELECT CODIGO, DESCRICAO, COUNT(*) FROM T_REGISTRODUPLICADO
GROUP BY CODIGO, DESCRICAO
HAVING COUNT(*)>1

[/sourcecode]

Se você quer o resultado ordenado pela combinação mais duplicado do código e descrição, você pode incluir a cláusula ORDER BY da seguinte forma:

[sourcecode language=”sql”]

SELECT CODIGO, DESCRICAO, COUNT(*) FROM T_REGISTRODUPLICADO
GROUP BY CODIGO, DESCRICAO
HAVING COUNT(*)>1
ORDER BY COUNT(*) DESC

[/sourcecode]

Faça o download do arquivo de exemplo clicando no link: registrosduplicados

Um comentário

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.