有一个事务表,其中有诸如事务ID,名称和createdat之类的列。 每个名称都有多个事务,其创建的数据将完全不同。
我想查询每个名称最近的五笔交易。整个表格中没有获得五个最近的交易。如果它的交易少于五个,那么我希望它只显示那里的一切。
试图集中我所有的sql知识,但我很难做到这一点。任何输入都将受到高度赞赏。
答案 0 :(得分:2)
尝试此查询,
select *
from (
select *, row_number() OVER (PARTITION BY name ORDER BY createdat DESC) as rnk
FROM yourtable
) t
where rnk <=5