Verificar registro duplicado e listá-los com Oracle

16/05/2022

0

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(*)>1COPIAR CÓDIGO
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!
Flávia Santos

Flávia Santos

Responder

Post mais votado

17/05/2022

tente assim:
SELECT
	*
FROM
	PESSOA
WHERE
	NOME_PESSOA IN 
		(	SELECT
				NOME_PESSOA
			FROM
				PESSOA
			GROUP BY
				NOME_PESSOA
			HAVING COUNT(*) > 1
		)
para melhor performance seria bom ter um índice pelo campo NOME_PESSOA na tabela PESSOA

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

17/05/2022

Jair N.

Bom Dia, não entendi a sua dificuldade de avaliação!
1º) A sua consulta está perfeita, vai trazer os dados que estão duplicados, se for no caso, a questão de uma visualização ou gerar tabela dá na mesma, até que a sua necessidade seja conclusiva para listar ou assinalar qual dos dados deverá permanecer no banco e quais serão excluídos? No caso o critério deverá ser por interferência humana? (já que nossas nossas mentes processa esse tipo de classificação de uma maneira rápida e criteriosa dependendo do indivíduo e seus conhecimentos).
2º) Uma outra alternativa é a exemplo: no cadastro de "pessoas" seria quais os registros que estão sendo mais utilizados em outras tabelas (a integridade referencial está permite ou não a substituição do registro selecionado?)
3º) Pode-se fazer um processamento de validação baseado a exemplo qual será o registro que está mais completo no cadastro, ou quais são os dados que estão realmente corretos, validando os documentos como CNP (J/F) , inscrições (E/M), nomes e razão e etc.
4º) Ou fazer uma grade gerada de críticas onde pode selecionar as opções que atende seus requisitos. Neste caso por interferência do usuário.

PS: Isto é só uma opção entre outras.

Atc.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar