Сценарий:
Вие работите като разработчик на SQL Server. Трябва да напишете заявката за таблицата dbo.Customer, която трябва да върне дублиращите се записи и броя на дублиращите се записи.Решение:
Можете да използвате агрегатната функция Group by и Count, за да намерите всички дублиращи се записи в таблицата и броя.Да приемем, че имаме таблица dbo.Customer с дефиниция и данни по-долу. Бихме искали да намерим записа, ако е дублиран от колони FName,LName и 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)
Нека напишем нашата заявка, включихме всички колони в списъка за избор с count(*) и след това групираме по същите колони. В края ще използваме клауза Having за филтриране на записа, който се дублира.
SELECT fname, lname, countryshortname, Count(*) AS RecordCount FROM dbo.customer GROUP BY fname, lname, countryshortname HAVING Count(*) > 1
От данните можем да видим, че единственият запис, който се дублира от FName,LName и Кратко име на държава е 'Raza','M','PK' и има общо два записа, върнати от нашата заявка.
Как да намерите дублирани записи, като използвате Group by и Having Clause в SQL Server