我有一个包含电子邮件地址的表格,其中有些人列出了多个电子邮件地址。我想查询表格,只为每个人提取一个电子邮件地址。
列是:
ID
IndividualID
电子邮件
示例数据:
1 34 dave@gmail.com
2 65 bob@gmail.com
3 34 david@gmail.com
我想要的结果是(每个IndividualID只拉一行):
1 34 dave@gmail.com
2 65 bob@gmail.com
答案 0 :(得分:4)
使用ROW_NUMBER()
DECLARE @sample TABLE (
ID int,
IndividualID int,
Email varchar(128)
)
INSERT INTO @sample
VALUES
(1, 34, 'dave@gmail.com'),
(2, 65, 'bob@gmail.com'),
(3, 34, 'david@gmail.com')
SELECT *
FROM (
SELECT *, RN = ROW_NUMBER() OVER(PARTITION BY IndividualId ORDER BY ID)
FROM @sample
) AS data
WHERE RN = 1