如何查询sql中每个项目最近的五个事务

时间:2016-06-20 11:30:37

标签: sql postgresql subquery greatest-n-per-group correlated-subquery

有一个事务表,其中有诸如事务ID,名称和createdat之类的列。 每个名称都有多个事务,其创建的数据将完全不同。

我想查询每个名称最近的五笔交易。整个表格中没有获得五个最近的交易。如果它的交易少于五个,那么我希望它只显示那里的一切。

试图集中我所有的sql知识,但我很难做到这一点。任何输入都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

尝试此查询,

select * 
from ( 
   select *, row_number() OVER (PARTITION BY name ORDER BY createdat DESC) as rnk 
   FROM yourtable
) t 
where rnk <=5