特定の列に基づいて重複レコード数を取得する必要があります。フィールドに NULL 値がある場合、重複とは見なされません。
SELECT Leadid,COUNT(Lead)
FROM #CheckNULLCOUNT
GROUP BY LeadId,Lead
ただし、次のクエリでは重複と見なされます
SELECT Leadid,COUNT(ISNULL(Lead,'-'))
FROM #CheckNULLCOUNT
GROUP BY LeadId,Lead
私の質問は、NULL 列の重複カウントを取得するより良い方法があるということです。
/* Create Temporary Table*/
CREATE table #CheckNULLCOUNT(
Id Int PRIMARY key
,name varchar(100)
,LeadId Int
,Lead varchar(100))
/* Insert data into temporary Table*/
INSERT INTO #CheckNULLCOUNT VALUES(1,'Skip',101,'lead1')
INSERT INTO #CheckNULLCOUNT VALUES(2,'Turner',102,'lead2')
INSERT INTO #CheckNULLCOUNT VALUES(3,'Molisa',103,'lead3')
INSERT INTO #CheckNULLCOUNT VALUES(4,'Mario',104,'lead4')
INSERT INTO #CheckNULLCOUNT VALUES(5,'Jack',105,'lead5')
INSERT INTO #CheckNULLCOUNT VALUES(6,'Kris',106,'lead6')
INSERT INTO #CheckNULLCOUNT VALUES(7,'John',107,'lead7')
INSERT INTO #CheckNULLCOUNT VALUES(8,'Owen',109,NULL)
INSERT INTO #CheckNULLCOUNT VALUES(9,'Bill',109,NULL)
INSERT INTO #CheckNULLCOUNT VALUES(10,'Martin',109,NULL)
INSERT INTO #CheckNULLCOUNT VALUES(11,NULL,111,'lead9')
INSERT INTO #CheckNULLCOUNT VALUES(12,NULL,111,'lead9')
/* **NOT** treating as duplicate */
SELECT Leadid,COUNT(ISNULL(Lead,'-'))
FROM #CheckNULLCOUNT
GROUP BY LeadId,Lead
/* treating as duplicate */
SELECT Leadid,COUNT(ISNULL(Lead,'-'))
FROM #CheckNULLCOUNT
GROUP BY LeadId,Lead
DROP TABLE #CheckNULLCOUNT