sql - 如何创建一个聚合函数来返回最后n条记录?

标签 sql postgresql aggregate-functions

我正在使用 Postgres,并且想创建一个聚合函数来返回最后 n 个最新记录(根据另一列)。这可能吗?如果是这样,我该怎么做?或者不这样做会更好吗?

寻找类似 select sum(col1) as a, last_n(col2, 5,created_date) as b from ...'

b 将是一个包含 5 个元素的数组。

最佳答案

您可以只使用不相关子查询:

SELECT sum(col1) as a
      ,ARRAY(
          SELECT col2
          FROM   tbl t2
          ORDER  BY t2.created_date DESC
          LIMIT  5) AS b
FROM   tbl t1;

关于sql - 如何创建一个聚合函数来返回最后n条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541926/

相关文章:

python - 急切加载邻接列表关系

sql - 如何指定要从联接结果中选择的列

php - 在 MySQL 中创建数据透视表/水平 View 并导出到 PHP

sql - PostgreSQL 中的自定义聚合函数

sql - 从 4 个表中提取值的子查询

postgresql - "unrecognized method call"的 SqlProvider 查询错误

sql - 我如何在 PSQL 中查询一个表,以便它返回相同的成对列表?

sql - 相关查询 : select where condition not max(condition in inner query)

MySQL 查询 : Select Most

ruby-on-rails - heroku pg:psql时显示Heroku : This version of the API has been Sunset.