Total Total Unqiue Datakey Total Unique Landline Total Unique Mobile Total Unique Emai-------------------- -------------------- --------------------- ------------------- -----------------9 6 6 4 3
SELECT COUNT(DISTINCT datakey) OVER(Partition by datakey) AS Uniquedatakey, COUNT(DISTINCT CASE WHEN landline<>'' THEN landline END) OVER(Partition by datakey) AS Uniquelandline, COUNT(DISTINCT CASE WHEN mobile<>'' THEN mobile END) OVER(Partition by datakey) AS Uniquemobile, COUNT(DISTINCT CASE WHEN email<>'' THEN email END)OVER(Partition by datakey) AS UniqueemailFROM test
SELECT datakey,COUNT(datakey) OVER(Partition by datakey) AS Uniquedatakey, COUNT(landline) OVER(Partition by datakey) AS Uniquelandline, COUNT(mobile) OVER(Partition by datakey) AS Uniquemobile, COUNT(emailD)OVER(Partition by datakey) AS UniqueemailFROM testgroup by datakey
declare @t table(indkey nvarchar(2),datakey nvarchar(4),landline nvarchar(11),mobile nvarchar(11),email nvarchar(20))insert into @t values ('1','0001','01234567890','0712345679','1@test.co.uk')insert into @t values('2','0001','01234567890','','1@test.co.uk')insert into @t values('3','0002','01234567891','','2@test.co.uk')insert into @t values('4','0002','01234567890','','2@test.co.uk')insert into @t values('5','0002','','07123456789','')insert into @t values('6','0003','01234567892','07123456791','')insert into @t values('7','0004','01234567893','07123456792','')insert into @t values('8','0005','01234567894','07123456793','2@test.co.uk')insert into @t values('9','0008','01234567895','07123456793','9@test.co.uk')SELECT distinct datakey,COUNT(datakey) OVER(Partition by datakey) AS Uniquedatakey, COUNT(landline) OVER(Partition by datakey) AS Uniquelandline, COUNT(mobile) OVER(Partition by datakey) AS Uniquemobile, COUNT(email)OVER(Partition by datakey) AS UniqueemailFROM @t