2011-07-27 40 views
0

有人在我公司寫了一個封閉的存儲過程,它給出了這些結果:如何找到最後一排有重複值的列

rowNumber userid DateCreated 
1    500 2011-07-20 11:03:24.590 
2    500 2011-07-21 11:03:24.590 
3    500 2011-07-22 11:03:24.590 
1    502 2011-07-20 11:03:24.590 
2    502 2011-07-21 11:03:24.590 
1    504 2011-07-20 11:03:24.590 
2    504 2011-07-21 11:03:24.590 

我不能改變它使用ROW_NUMBER原始查詢,因此以上列表是我的只讀數據源。

我需要它的最大ROWNUMBER以獲得每個用戶id完整的數據,即

3   500 2011-07-22 11:03:24.590 
2   502 2011-07-21 11:03:24.590 
2   504 2011-07-21 11:03:24.590 

,我不要再使用ROWNUMBER是很重要的。

回答

1
select t.* 
from 
(
    select userid, max(rownumber) m 
    from table 
    group by userid 
) c 
    inner join table t 
     on c.userid = t.userid and c.m = t.rownumber 
0
SELECT test.rownumber, test.userid, test.datecreated 
FROM test 
    INNER JOIN (SELECT MAX(rownumber) AS Expr1, userid 
       FROM test AS test_1 
       GROUP BY userid) AS t1 
    ON test.userid = t1.userid AND test.rownumber = t1.Expr1 
    ORDER BY test.userid 
相關問題