Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć zduplikowane rekordy za pomocą klauzuli Group by i Having w SQL Server — SQL Server / TSQL Tutorial, część 132

Scenariusz:

Pracujesz jako programista SQL Server. Musisz napisać zapytanie do tabeli dbo.Customer, które powinno zwrócić zduplikowane rekordy i liczbę zduplikowanych rekordów.


Rozwiązanie:

Możesz użyć funkcji agregującej Grupuj według i Policz, aby znaleźć wszystkie zduplikowane rekordy w tabeli i zliczyć.

Załóżmy, że mamy tabelę dbo.Customer z poniższą definicją i danymi. Chcielibyśmy znaleźć rekord, jeśli jest zduplikowany przez kolumny FName,LName i 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)
 
 Napiszmy nasze zapytanie, wszystkie kolumny z listy wyboru uwzględniliśmy za pomocą count(*), a następnie pogrupowaliśmy według tych samych kolumn. Na koniec użyjemy klauzuli Have do filtrowania rekordów, które są zduplikowane.


SELECT fname, 
       lname, 
       countryshortname, 
       Count(*) AS RecordCount 
FROM   dbo.customer 
GROUP  BY fname, 
          lname, 
          countryshortname 
HAVING Count(*) > 1
 Na podstawie danych widzimy, że jedynym rekordem, który jest zduplikowany przez FName,LName i krótką nazwę kraju, jest „Raza”, „M”, „PK” i mają łącznie dwa rekordy zwrócone przez nasze zapytanie.

Jak znaleźć zduplikowane rekordy przy użyciu funkcji Grupuj według i Klauzule SQL Server



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Projekt bazy danych:jedna wielka tabela czy osobne tabele?

  2. Miesiące między dwiema datami

  3. Pobierz wszystkie daty między dwiema datami w SQL Server

  4. SQL Server 2008 — Pobierz ograniczenia dotyczące tabel

  5. Pomysłowe narzędzie SQL Password Changer do resetowania hasła SQL