如何查询 sql 中每个项目的最近五笔交易

How to query most recent five transactions per item in sql

有一个交易table,其中有交易ID、名称和创建时间等列。 每个名称都有多个事务,其 createdat 数据将完全不同。

我想为每个名称查询五个最近的交易。总共没有获得五个最近的交易 table。如果它少于五笔交易,那么我希望它只显示其中的任何内容。

试图集中我所有的 sql 知识,但我很难做到。任何输入将不胜感激。

试试这个查询,

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