SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY column ORDER BY date DESC) AS row_num
FROM table_name
) AS t
WHERE row_num <= 2
以上代码使用ROW_NUMBER()窗口函数来对每个分组内的行进行排序,并为每行分配一个数字。然后,将此查询作为子查询,并在外部查询中选择前两行(即ROW_NUMBER()小于等于2的行),从而检索每个分组的最后两条记录。
上一篇:按列分组获取多行计数的SQL
下一篇:按列分组计算日期之间的持续时间