Skenario:
Anda bekerja sebagai pengembang SQL Server. Anda perlu menulis kueri untuk tabel dbo.Customer yang harus mengembalikan rekaman duplikat dan jumlah rekaman duplikat.Solusi:
Anda dapat menggunakan fungsi Group by dan Count agregat untuk menemukan semua record duplikat dalam tabel dan count.Misalnya kita memiliki tabel dbo.Customer dengan definisi dan data di bawah ini. Kami ingin mencari record jika diduplikasi dengan kolom FName,LName dan CountryShortName.
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2), SaleAmount Int) GO --Insert Rows in dbo.Customer Table insert into dbo.Customer Values ( 1,'Raza','M','PK',10), (2,'Rita','John','US',12), (3,'Sukhi','Singh',Null,25), (4,'James','Smith','CA',60), (5,'Robert','Ladson','US',54), (6,'Alice','John','US',87), (6,'Raza','M','Pk',Null)
Mari kita tulis kueri kita, kita telah memasukkan semua kolom dalam daftar pilih dengan count(*) dan kemudian mengelompokkan berdasarkan kolom yang sama. Pada akhirnya kita akan menggunakan klausa Have untuk menyaring record yang merupakan duplikat.
SELECT fname, lname, countryshortname, Count(*) AS RecordCount FROM dbo.customer GROUP BY fname, lname, countryshortname HAVING Count(*) > 1
Dari data kita dapat melihat bahwa satu-satunya record yang diduplikasi oleh FName,LName dan Country short name adalah 'Raza','M','PK'dan memiliki total dua record yang dikembalikan oleh query kita.
Cara menemukan rekaman duplikat dengan menggunakan Grup oleh dan Memiliki Klausa di SQL Server