Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Verificar duplicidade em tabela e listar os registros

Fala galera!

Quero verificar duplicidade em uma tabela e trazer esses registros. Quero listá-los.

Para verificar a duplicidades, fiz assim:

SELECT NOME_PESSOA, COUNT(*) AS QTD_REGISTRO_DUPLICADO 
FROM PESSOA GROUP BY NOME_PESSOA HAVING COUNT(*)>1

Esse select me traz o nome da pessoa e a quantidade de vezes que o registro aparece. Ex.:

Flávia 2 Aline 4 . . .

Preciso agora trazer essas informações listadas, para que possa decidir qual registro será excluído. Não tenho ideia de como fazer.

Pensei em criar uma tabela temporária para armazenar o conteúdo do primeiro select. E depois fazer um select com join da tabela temporária com a tabela PESSOA.

Mas queria uma ajuda, não sei se é a melhor opção.

Desde já, agradeço a colaboração de todos!

2 respostas

olá, Flávia, tudo bom ?

Bom, pelo pouco que entendo, acredito que se você trocar o group by por order by conseguirá o resultado esperado. Utilizando o order by ele ira listar repetindo o nome para cada registro que ele aprecer.

Ex: Flávia 2 | Flávia 2 | Aline 4 | Aline 4 | Aline 4 | Aline 4 |

Espero ter ajudado. :)

solução!

Boa tarde Flávia,

A query que vc está utilizando está certa para retornar quantidade, igual vc mesmo citou "Flávia 2 Aline 4 . . .". Porém, para listar elas em linhas separadas você pode utilizar da seguinte forma:

SELECT 
    NOME_PESSOA, 
    * (inserir outros campos da tabela)

        FROM PESSOA 

    GROUP BY NOME_PESSOA, * (inserir outros campos da tabela)

    HAVING COUNT(NOME_PESSOA) > 1

    ORDER BY NOME_PESSOA ASC;

Dessa forma vc vai conseguir listar todas as linhas que possuem registros de "NOME_PESSOA" que estão duplicados, ordenando eles por ordem alfabética para a visualização ficar melhor para poder comparar e excluir.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software