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

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

DDD
发布: 2024-12-30 02:14:08
原创
574 人浏览过

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中文网其他相关文章!

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