【发布时间】:2017-03-22 19:59:26
【问题描述】:
我有一张桌子
Account, CompanyID, Mail_Address
1001,1,Main ST
1001,2,Main ST
1001,3,Florida ST
1002,1,South Main
1002,2,West Main
1002,3,Soth Main
1003,1,North Main
1003,2,North Main
我需要创建一个删除重复 Mail_Address 的查询,这很简单。问题是返回的结果是最后一个重复值,而不是第一个重复值。
如果我的桌子是上面的 结果将是
Account, CompanyID, Mail_Address
1001,2,Main ST
1001,3,Florida ST
1002,2,West Main
1002,3,South Main
1003,2,North Main
请注意,查询删除了第一条记录并保留了最后一条重复值。
我希望结果是这样的
Account, CompanyID, Mail_Address
1001,1,Main ST
1001,3,Florida ST
1002,1,South Main
1002,2,West Main
1003,1,North Main
我的查询
SELECT *
FROM (SELECT [ACCOUNT]
,[COMPANY]
,[MAIL_ADDRESS]
,
ROW_NUMBER() OVER(PARTITION BY Mail_Address ORDER BY Account ASC) rn
FROM [SQLUserDB].[dbo].[DSDD01]
) a
WHERE rn = 1
【问题讨论】:
标签: sql