首页 > 数据库 > mysql教程 > 如何使用DISTINCT ON高效地选择PostgreSQL中每个类别的最大日期ID?

如何使用DISTINCT ON高效地选择PostgreSQL中每个类别的最大日期ID?

DDD
发布: 2024-12-27 17:10:17
原创
499 人浏览过

How Can I Efficiently Select the ID with the Maximum Date for Each Category in PostgreSQL Using DISTINCT ON?

在 PostgreSQL 中使用 DISTINCT ON 选择按类别分组的最大日期的 ID

要选择每个类别中具有最大日期的 id, Postgres 提供了一个强大的功能,称为 DISTINCT ON。下面是实现此目的的查询:

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

DISTINCT ON 根据指定列区分行,并根据排序顺序过滤后续行。通过按每个类别中日期的降序对行进行排序,DISTINCT ON 提供每个类别的最大日期。

注意: 确保日期列不为 NULL,因为 NULL 值可能会导致影响排序顺序。如有必要,您可以添加 NULLS LAST 来处理 NULL 值。

DISTINCT ON 提供简单性和效率。其性能对于较小的数据集特别有效。对于每个类别包含大量行的较大数据集,替代方法可能更合适,例如“相关堆栈溢出问题”部分中提到的方法。

以上是如何使用DISTINCT ON高效地选择PostgreSQL中每个类别的最大日期ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

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