sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man hittar dubbletter av poster med hjälp av Group by and Having-satsen i SQL Server - SQL Server / TSQL Tutorial Del 132

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



  1. PostgreSQL-installation på Docker

  2. kan inte ladda oci8 -> Allvarligt fel:Anrop till odefinierad funktion oci_connect()

  3. Jämföra datalager för PostgreSQL - MVCC vs InnoDB

  4. Hur MONTHNAME() fungerar i MariaDB