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

时间:2014-02-04 02:30:08

标签: sql postgresql aggregate-functions

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

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

的内容

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

1 个答案:

答案 0 :(得分:2)

您可以使用 uncorrelated 子查询:

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