尝试捕获行数 > 1 的所有 Row_Numbers
Trying to capture all of the Row_Numbers with Rows > 1
我确定这实际上是一个简单的修复(听起来就像是这样),但我的大脑无法思考如何让它发挥作用。
我目前正在使用这个查询
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 的其他第一行的情况下捕获第一行。
你可以再多一列来计算,
COUNT(*) OVER(PARTITION BY m.memberfirstname+' '+m.memberlastname,m.MemberDOB,s.GroupID ORDER BY m.MemberDOB) CountNo
然后是CountNo > 1
我确定这实际上是一个简单的修复(听起来就像是这样),但我的大脑无法思考如何让它发挥作用。
我目前正在使用这个查询
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 的其他第一行的情况下捕获第一行。
你可以再多一列来计算,
COUNT(*) OVER(PARTITION BY m.memberfirstname+' '+m.memberlastname,m.MemberDOB,s.GroupID ORDER BY m.MemberDOB) CountNo
然后是CountNo > 1