Escenario:
Estás trabajando como desarrollador de SQL Server. Debe escribir la consulta para la tabla dbo.Customer que debe devolver los registros duplicados y el recuento de registros duplicados.Solución:
Puede usar la función de agregado Agrupar por y Contar para encontrar todos los registros duplicados en la tabla y contarlos.Digamos que tenemos la tabla dbo.Customer con la siguiente definición y datos. Nos gustaría encontrar el registro si está duplicado por las columnas FName,LName y 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)
Escribamos nuestra consulta, hemos incluido todas las columnas en la lista de selección con conteo (*) y luego las agrupamos por las mismas columnas. Al final, usaremos la cláusula Have para filtrar los registros que están duplicados.
SELECT fname, lname, countryshortname, Count(*) AS RecordCount FROM dbo.customer GROUP BY fname, lname, countryshortname HAVING Count(*) > 1
A partir de los datos, podemos ver que el único registro que está duplicado por FName, LName y el nombre corto del país es 'Raza', 'M', 'PK' y tiene un total de dos registros según lo devuelto por nuestra consulta.
