Сделайте это следующим образом, используя DENSE_RANK:
;WITH CTE AS (
SELECT
[First Name]
, [Last Name]
, [E-mail Address]
, DENSE_RANK() OVER ( PARTITION BY [E-mail Address] ORDER BY [First Name] ) RN
FROM Contact_Master
)
SELECT * FROM CTE
- выполните следующие действия:
with Contact_Master as
(
select 1 as id, 'John' as [First Name] , 'Doe' as [Last Name], 'John.Doe@gmail.com' as [E-mail Address]
union select 2, 'John' , 'Doe' , 'John.Doe@gmail.com'
union select 3, 'Jane' , 'Doe' , 'Jane.Doe@gmail.com'
union select 4, 'Jane' , 'Doe' , 'Jane.Doe@gmail.com'
), CTE AS (
SELECT id,
[First Name]
, [Last Name]
, [E-mail Address]
, DENSE_RANK() OVER (PARTITION BY [Last Name] ORDER BY [E-mail Address] ) RN
FROM Contact_Master
)
SELECT * FROM CTE
Вывод:
id First Name Last Name E-mail Address RN
3 Jane Doe Jane.Doe@gmail.com 1
4 Jane Doe Jane.Doe@gmail.com 1
1 John Doe John.Doe@gmail.com 2
2 John Doe John.Doe@gmail.com 2