Scenario:
Du arbetar som SQL Server-utvecklare. Du måste skriva frågan för dbo.Customer-tabellen som ska returnera dubblettposterna och antalet dubbletter.Lösning:
Du kan använda Gruppera efter och Räkna aggregatfunktion för att hitta alla dubbletter av poster i tabell och antal.Låt oss säga att vi har dbo.Kundtabell med nedanstående definition och data. Vi skulle vilja hitta posten om den är duplicerad av kolumnerna FName, LName och 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)
Låt oss skriva vår fråga, vi har inkluderat alla kolumner i urvalslistan med count(*) och sedan grupperat efter samma kolumner. I slutet kommer vi att använda Having-satsen för att filtrera posterna som är dubbletter.
SELECT fname, lname, countryshortname, Count(*) AS RecordCount FROM dbo.customer GROUP BY fname, lname, countryshortname HAVING Count(*) > 1
Från data kan vi se att den enda posten som dupliceras av FName, LName och Country short name är 'Raza','M','PK'och har totalt två poster som returneras av vår fråga.
Hur man hittar dubbletter av poster genom att använda Group by och Ha-sats i SQL Server