Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Показване на всички дублирани редове

Намерихте вашите дублирани записи, но се интересувате да получите цялата информация, прикачена към тях. Трябва да се join вашите дубликати към основната ви таблица, за да получите тази информация.

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

Това е същото като inner join и означава, че за всеки запис във вашата подзаявка, който е намерил дублиращите се записи, ще намерите всичко от основната си таблица, което има същата комбинация firstseen и lastseen.

Можете също да направите това с in, въпреки че трябва да тествате разликата :

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

Допълнителна литература:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавете изчислена колона към съществуваща таблица в SQL Server

  2. Първи стъпки с GearHost за разработка на база данни на SQL Server

  3. Грешка 113 на SQL Server:Липсващ знак за краен коментар „*/“

  4. Какъв е смисълът на COLLATIONS за колони nvarchar (Unicode)?

  5. Как да посочите съпоставянето в заявка в SQL Server (T-SQL)