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

如何查找 PostgreSQL 中每个类别的最大日期 ID?

DDD
DDD原创
2024-12-30 02:14:08583浏览

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

为 PostgreSQL 中的每个类别选择最大日期 ID

在包含有关类别、日期和 ID 数据的表的数据库中,可以检索每个类别的最新日期的 ID。考虑以下示例数据:

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,PostgreSQL 提供了 DISTINCT ON 子句。此子句允许您在选择不同值时根据指定列对行进行分组和比较。

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

查询按升序类别顺序和降序日期顺序优先对行进行排序。因此,对于每个唯一类别,将返回具有最大日期的最后一行。

id  category  date
7   a         2013-01-03
2   b         2013-01-03
6   c         2013-01-03

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn