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

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

有一个事务表,里面有事务id、名称、创建时间等列。 每个名称都有多个事务,其 createdat 数据将完全不同。

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

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

最佳答案

试试这个查询,

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

关于sql - 如何在sql中查询每个项目的最近五笔交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37921428/

相关文章:

sql - SSIS 中是否有用于平面文件源的 WHERE 子句功能?

sql - MongoDB 和 PostgreSQL 的思考

postgresql - 在 postgres 中删除单个枚举值

django - PostgreSQL 数据库服务器无响应

mysql - 使用子查询排除值

mysql - 处理子查询,每行返回多行。数据库 : Mysql, SQL

sql - 如何选择最新的数据?

php - 如何获取行数作为列

sql - 使用来自另一个表的变量遍历 SQL 查询

mysql - 为每个事件显示多个类别