我有一个看起来像这样的表:comment_id,user_id,comment,last_updated.
Comment_id是这里的关键.每个用户可能有多个评论.
如何为每个用户获取5条最新评论(SQL Server的SQL查询)?
输出应该与原始表类似,只是将用户的注释限制为每个用户最近的5个.
Joe*_*lli 10
假设至少SQL Server 2005,您可以使用窗口函数(row_number)和CTE:
;with cteRowNumber as (
select comment_id, user_id, comment, last_updated, ROW_NUMBER() over (partition by user_id order by last_updated desc) as RowNum
from comments
)
select comment_id, user_id, comment, last_updated
from cteRowNumber
where RowNum <= 5
order by user_id, last_updated desc
Run Code Online (Sandbox Code Playgroud)