SQL - Descobrir se existem registros duplicados
Neste conteúdo vamos mostrar como verificar se existe registros duplicados no banco. Neste exemplo vamos mostrar como fazer na tabela CRM_PROCEDIMENTO_FORMULARIOS, porém o mesmo pode ser adaptado para qualquer outra tabela.
select cpa.idprocedimento,
cpa.idatividade,
cpa.idversao,
idformulario,
count(cpa.idprocedimento)
from crm_procedimento_formulario cpa
group by cpa.idprocedimento,
cpa.idatividade,
cpa.idversao,idformulario
having count(cpa.idprocedimento)>=2
Retorno da consulta:
O count mostra quantos registro tem idênticos. Agora para descobrir quais registro são basta executar o seguinte SQL:
select *
from (select *
from crm_procedimento_formulario
where idprocedimento = 24
and idatividade = 2
and idversao = 1
and idformulario = 1)
where rownum < 3
Obs: o comando rownum varia conforme a quantidade for retornada. Neste exemplo como os filtros que colocamos ele retorno que havia 3 registros iguais o rownum fica " < 3" .
Retorno da consulta: