通过多个分组获取 N 个最新行
鉴于此数据
用户身份 | 完成日期 |
---|---|
1 |
2016 年 7 月 20 日 |
1 |
2016 年 7 月 21 日 |
2 |
2016 年 7 月 20 日 |
2 |
2016 年 7 月 21 日 |
2 |
2016 年 7 月 22 日 |
;with CTE as
(SELECT *,
ROW_NUMBER() OVER (PARTITION BY User_ID
ORDER BY Completion_Date DESC) Row_Num
FROM Data)
SELECT * FORM CTE WHERE Row_Num <= n
使用 n = 1,你将获得每个 user_id
最近一行:
用户身份 | 完成日期 | ROW_NUM |
---|---|---|
1 |
2016 年 7 月 21 日 | 1 |
2 |
2016 年 7 月 22 日 | 1 |