尝试使用行>捕获所有Row_Numbers 1

时间:2015-02-26 18:40:29

标签: sql sql-server ssms row-number

我确定这实际上是一个简单的解决方案(听起来就像是这样)但是我的大脑无法解决如何让它发挥作用。

我目前正在使用此查询

Select 
    m.memberfirstname+' '+m.memberlastname [Name],
    m.MemberDOB, 
    s.GroupID, 
    c.PaperID, 
    cr.PaperScanningStatusID, 
    ROW_NUMBER() OVER(PARTITION BY m.memberfirstname+' '+m.memberlastname,m.MemberDOB,s.GroupID ORDER BY m.MemberDOB) rn
From 
    Papers c, 
    Members m, 
    Sites s, 
    PaperRetrieval cr
Where 
    c.SiteID=s.SiteID
    and c.MemberID=m.MemberID
    and c.PaperID=cr.PaperID
    and cr.PaperScanningStatusID not in (100)

并且rn列工作得很好。现在我需要捕获所有rn计数大于1的行。

问题是我通常会写一些像rn> = 2的东西,但是,我也希望捕获第一行。不仅仅是2岁以上。

我不知道如何捕获第一行而不捕获其他没有计数大于1的行。

1 个答案:

答案 0 :(得分:2)

你可以再增加一个列来计算,

COUNT(*) OVER(PARTITION BY m.memberfirstname+' '+m.memberlastname,m.MemberDOB,s.GroupID ORDER BY m.MemberDOB) CountNo

然后CountNo > 1