在包含有关类别、日期和 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中文网其他相关文章!