在 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;
解释:
此查询的结果将是:
7 2 6
请注意,DISTINCT ON 在以下情况下特别有用:存在具有相同最大日期的多个记录。在这种情况下,它提供了一种为每个类别选择第一个唯一记录的方法。
以上是如何检索 PostgreSQL 中每个类别的最大日期 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!