首页 > 数据库 > mysql教程 > 如何检索 PostgreSQL 中每个类别的最大日期 ID?

如何检索 PostgreSQL 中每个类别的最大日期 ID?

Linda Hamilton
发布: 2025-01-03 01:58:38
原创
418 人浏览过

How to Retrieve the Maximum Date ID for Each Category in PostgreSQL?

在 PostgreSQL 中检索按类别分组的最大日期 ID

在数据库操作中,经常需要根据特定条件检索记录。其中一项任务涉及为给定数据集中的每个类别选择具有最大日期的 ID。这可以在 PostgreSQL 中使用 DISTINCT ON 子句有效地实现。

考虑以下示例数据:

id  category  date
1   a         2013-01-01
2   b         2013-01-03
3   c         2013-01-02
4   a         2013-01-02
5   b         2013-01-02
6   c         2013-01-03
7   a         2013-01-03
8   b         2013-01-01
9   c         2013-01-01
登录后复制

选择每个 ID 具有最大日期类别,您可以使用以下查询:

SELECT DISTINCT ON (category)
       id  -- , category, date  -- any other column (expression) from the same row
FROM   tbl
ORDER  BY category, date DESC;
登录后复制

解释:

  • DISTINCT ON (category): 此子句确保消除重复的类别,从而使我们选择第一个满足排序的唯一类别criteria.
  • date DESC: 这种降序排序确保首先检索每个类别中具有最大日期的记录。

此查询的结果将是:

7
2
6
登录后复制

请注意,DISTINCT ON 在以下情况下特别有用:存在具有相同最大日期的多个记录。在这种情况下,它提供了一种为每个类别选择第一个唯一记录的方法。

以上是如何检索 PostgreSQL 中每个类别的最大日期 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

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