• Alright, lets try this

    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 Uniqueemail

    FROM @t

    Results:

    datakeyUniquedatakeyUniquelandlineUniquemobileUniqueemail

    00012222

    00023333

    00031111

    00041111

    00051111

    00081111

    Are we getting close?