首页 > 数据库 > mysql教程 > 如何提取 PostgreSQL 中每个 ID 的最后一行?

如何提取 PostgreSQL 中每个 ID 的最后一行?

Patricia Arquette
发布: 2024-12-28 15:02:11
原创
560 人浏览过

How to Extract the Last Row for Each ID in PostgreSQL?

提取 Postgresql 中每个 ID 的最后一行

考虑一个包含名为 id、date 和 another_info 列的数据集。目标是提取每个唯一 id 的最后一个信息(行)。

为了在 Postgresql 中完成此操作,通常使用两种方法:

Distinct On Operator

Postgresql 提供了 unique on 运算符,它允许您指定仅返回特定列的不同值。在这种情况下,可以按如下方式使用运算符:

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
登录后复制

此查询确保仅返回每个唯一 id 的最后一个实例,并按日期降序排列。

窗口函数

或者,您可以使用窗口函数来实现相同的结果。窗口函数允许您对分区的行集执行计算或聚合。在这种情况下,可以使用以下查询:

select id, date, another_info
from (
  select id, date, another_info, 
         row_number() over (partition by id order by date desc) as rn
  from the_table
) t
where rn = 1
order by id;
登录后复制

此查询使用 row_number() 函数为每个 id 分区中的每一行分配一个序号。 where 子句过滤结果以仅包含具有最高 rn 值的行(即每个 id 的最后一行)。

以上是如何提取 PostgreSQL 中每个 ID 的最后一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板