SQL Server:加入顶级记录选择

时间:2017-05-31 13:43:03

标签: sql-server tsql join

Clientcode  Emailaddress    Accountcode clientname      phoneno
----------------------------------------------------------------
AAA         ragu@bib.com        100     Berjeya         90909090
AAA         ragu1@bib.com       100     Berjeya         90909090
AAABBB      jkkjkj@bib.com      200     Berjeya sooo    3222
CCCC        dfdf@bib.com        200     Berjeya klkl    123
dddd        sdsdsd@bib.com    33300     Berjeya penn    33333

这是我表格中的数据,我需要删除任何一个具有相同客户端代码和帐户代码的电子邮件地址。例如,电子邮件地址ragu@bib.comragu1@bib.com具有相同的客户端代码和帐户代码,但电子邮件地址不同;我只需要显示其中一个包含所有记录的电子邮件地址。请为此建议合适的查询。

1 个答案:

答案 0 :(得分:3)

你可以使用带有以下关系的前1:

Select top (1) with ties * from yourtable
   order by row_number() over(partition by ClientCode,AccountCode order by EmailAddress)

使用子查询,您可以执行以下操作

Select * from (
    Select *, RowN = Row_Number() over(partition by ClientCode, AccountCode order by EmailAddress) from yourtable
 ) a where a.RowN = 1