sql >> Database teknologi >  >> RDS >> Sqlserver

Vis alle duplikerede rækker

Du har fundet dine duplikerede optegnelser, men du er interesseret i at få alle oplysningerne knyttet til dem. Du skal join dine dubletter til din hovedtabel for at få disse oplysninger.

select *
  from my_table a
  join ( select firstname, lastname 
           from my_table 
          group by firstname, lastname 
         having count(*) > 1 ) b
    on a.firstname = b.firstname
   and a.lastname = b.lastname

Dette er det samme som en inner join og betyder, at for hver post i din underforespørgsel, der fandt de duplikerede poster, finder du alt fra din hovedtabel, der har den samme kombination af første set og sidst set.

Du kan også gøre dette med selvom du bør teste forskellen :

select *
  from my_table a
 where ( firstname, lastname ) in   
       ( select firstname, lastname 
           from my_table 
          group by firstname, lastname 
         having count(*) > 1 )

Yderligere læsning:



  1. hvordan man konverterer heltalsminutter til interval i postgres

  2. SQL:Find det gennemsnitlige antal dage mellem løbene for hver løber

  3. Sådan får du datoen fra en streng i Oracle

  4. Må vi interagere med et psql-script?