Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да намерите дублирани записи с помощта на клауза Group by и Having в SQL Server - SQL Server / TSQL Урок, част 132

Сценарий:

Вие работите като разработчик на SQL Server. Трябва да напишете заявката за таблицата dbo.Customer, която трябва да върне дублиращите се записи и броя на дублиращите се записи.


Решение:

Можете да използвате агрегатната функция Group by и Count, за да намерите всички дублиращи се записи в таблицата и броя.

Да приемем, че имаме таблица dbo.Customer с дефиниция и данни по-долу. Бихме искали да намерим записа, ако е дублиран от колони FName,LName и 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)
 
 Нека напишем нашата заявка, включихме всички колони в списъка за избор с count(*) и след това групираме по същите колони. В края ще използваме клауза Having за филтриране на записа, който се дублира.


SELECT fname, 
       lname, 
       countryshortname, 
       Count(*) AS RecordCount 
FROM   dbo.customer 
GROUP  BY fname, 
          lname, 
          countryshortname 
HAVING Count(*) > 1
 От данните можем да видим, че единственият запис, който се дублира от FName,LName и Кратко име на държава е 'Raza','M','PK' и има общо два записа, върнати от нашата заявка.

Как да намерите дублирани записи, като използвате Group by и Having Clause в 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. Как виждате ЦЕЛИЯ текст от ntext или nvarchar(max) в SSMS?

  2. FILE_ID() срещу FILE_IDEX() в SQL Server:Каква е разликата?

  3. Защо изпълнението на съхранени процедури е по-бързо от SQL заявката от скрипт?

  4. Неуспешно актуализиране на база данни .mdf, защото базата данни е само за четене (приложение за Windows)

  5. Получаване на номер на седмица от дата в MS SQL Server 2005?