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: 

image-1640005153780.png

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: 

image-1640005294965.png


Revisão #2
Criado 20 December 2021 09:53:56 por Nicolly Andrielly
Atualizado 10 March 2022 14:23:40 por Nicolly Andrielly