美文网首页
pgsql 分组查询取最新一条数据

pgsql 分组查询取最新一条数据

作者: 坚持也是一种成功 | 来源:发表于2019-12-06 11:07 被阅读0次

在业务中需要关联表查询,并且需要取出其中一个表的最新一条记录时,需要将数据进行分组,通过ARRAY_AGG函数。

下面的例子是,查询出每个用户的最新一个订单。这里没有采用网上说的子查询是考虑到如果数据量过大的时候,子查询将会消耗大量的处理时间。

SELECT
user_as.*,order_as.table_order_pk_id
FROM
(
SELECT
order_as .table_user_pk_id,
(
SELECT
UNNEST (
ARRAY_AGG (
order_as .table_order_pk_id
ORDER BY
order_as .createdate DESC
)
)
LIMIT 1
) table_order_pk_id
FROM
order as order_as
GROUP BY
order_as .table_user_pk_id
) tmp_table,
user AS user_as,
order AS order_as
WHERE
tmp_table.table_user_pk_id = user_as.table_user_pk_id
AND tmp_table.table_order_pk_id= order_as.table_order_pk_id

相关文章

网友评论

      本文标题:pgsql 分组查询取最新一条数据

      本文链接:https://www.haomeiwen.com/subject/acisgctx.html