/ 闲敲棋子 / SQL分组取最大N条记录

SQL分组取最大N条记录

2012-09-04 posted in [遇到问题]

做工作流时遇到的问题。

描述: 取到分组函数中更新时间最近的一条记录:

select * from t2 
where concat(gid,col2) in (select concat(gid,max(col2)) from t2 group by gid);

开始准备用这种方法, gid –> group by 的条件, col2 –> 时间,缺点是只能取到最近的一条记录。最终选择这种:

select * from (
	select * ,row_number() over ( partition by gid order by col2 desc) as cc from t2
) tt2 where tt2.cc<=1

其实有很多种方法,mark一下,以后学习:参考资料