Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Pokaż wszystkie zduplikowane wiersze

Znalazłeś zduplikowane rekordy, ale chcesz uzyskać wszystkie dołączone do nich informacje. Musisz join Twoje duplikaty do głównej tabeli, aby uzyskać te informacje.

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

To to samo, co inner join i oznacza, że ​​dla każdego rekordu w podzapytaniu, który znalazł zduplikowane rekordy, znajdziesz wszystko z głównej tabeli, które ma tę samą kombinację pierwszego i ostatniego wyświetlenia.

Możesz to również zrobić za pomocą chociaż powinieneś przetestować różnicę :

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

Dalsze czytanie:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uprawnienia Problem z uruchomieniem pakietu SSIS z Sql Job

  2. Użyj XEvent Profiler do przechwytywania zapytań w SQL Server

  3. Używanie DBCC CLONEDATABASE do generowania schematu i tylko kopii statystyk bazy danych użytkownika w programie SQL Server 2014 z dodatkiem SP2

  4. Jak skopiować rekord w tabeli SQL, ale zamienić unikalny identyfikator nowego wiersza?

  5. uzyskaj nowy identyfikator rekordu SQL