Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tìm bản ghi trùng lặp bằng cách sử dụng mệnh đề Group by và Have trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 132

Tình huống:

Bạn đang làm việc với tư cách là nhà phát triển SQL Server. Bạn cần viết truy vấn cho bảng dbo.Customer sẽ trả về các bản ghi trùng lặp và số lượng bản ghi trùng lặp.


Giải pháp:

Bạn có thể sử dụng hàm tổng hợp Nhóm theo và Đếm để tìm tất cả các bản ghi trùng lặp trong bảng và đếm.

Giả sử rằng chúng ta có bảng dbo.Customer với định nghĩa và dữ liệu bên dưới. Chúng tôi muốn tìm bản ghi nếu nó bị trùng lặp bởi các cột FName, LName và 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)
 
 Hãy viết truy vấn của chúng tôi, chúng tôi đã bao gồm tất cả các cột trong danh sách chọn với số đếm (*) và sau đó nhóm theo các cột giống nhau. Ở phần cuối, chúng ta sẽ sử dụng mệnh đề Có để lọc bản ghi bị trùng lặp. 


SELECT fname, 
       lname, 
       countryshortname, 
       Count(*) AS RecordCount 
FROM   dbo.customer 
GROUP  BY fname, 
          lname, 
          countryshortname 
HAVING Count(*) > 1
 Từ dữ liệu, chúng ta có thể thấy rằng bản ghi duy nhất bị trùng lặp bởi tên viết tắt của FName, LName và Country là 'Raza', 'M', 'PK' và có tổng cộng hai bản ghi được trả về bởi truy vấn của chúng tôi. 

Cách tìm các bản ghi trùng lặp bằng cách sử dụng Mệnh đề Nhóm theo và Có trong 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. Tôi có thực sự cần sử dụng SET XACT_ABORT ON không?

  2. SQL Server 2016:Tạo mối quan hệ

  3. Hàm COALESCE trong TSQL

  4. Truy vấn dữ liệu bằng cách kết hợp hai bảng trong hai cơ sở dữ liệu trên các máy chủ khác nhau

  5. Mỗi biểu thức GROUP BY phải chứa ít nhất một cột không phải là tham chiếu bên ngoài