sql >> Database >  >> RDS >> Sqlserver

Hoe dubbele records te vinden met behulp van Group by and Having-clausule in SQL Server - SQL Server / TSQL-zelfstudie, deel 132

Scenario:

Je werkt als SQL Server ontwikkelaar. U moet de query voor dbo.Klanttabel schrijven die de dubbele records en het aantal dubbele records moet retourneren.


Oplossing:

U kunt de aggregatiefunctie Groeperen op en Tellen gebruiken om alle dubbele records in de tabel te vinden en te tellen.

Stel dat we een dbo.Klanttabel hebben met onderstaande definitie en gegevens. We willen het record vinden als het gedupliceerd is door de kolommen FName,LName en 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)
 
 Laten we onze vraag schrijven, we hebben alle kolommen in de selectielijst opgenomen met count(*) en vervolgens gegroepeerd op dezelfde kolommen. Aan het einde zullen we de Having-clausule gebruiken om de records te filteren die duplicaat zijn.


SELECT fname, 
       lname, 
       countryshortname, 
       Count(*) AS RecordCount 
FROM   dbo.customer 
GROUP  BY fname, 
          lname, 
          countryshortname 
HAVING Count(*) > 1
 Uit gegevens kunnen we zien dat het enige record dat duplicaat is door FName,LName en Country korte naam 'Raza','M','PK' is en in totaal twee records heeft zoals geretourneerd door onze query.

Dubbele records vinden met behulp van Group by en Clause in SQL Server



  1. HAProxy:alle bronnen van de verschillende bronnen

  2. Geef WAAR parameters door aan PostgreSQL View?

  3. ABS() Voorbeelden in SQL Server

  4. Django oracle db-instellingen