首頁 > 資料庫 > mysql教程 > 如何在 PostgreSQL 中找到每個類別的最大日期 ID?

如何在 PostgreSQL 中找到每個類別的最大日期 ID?

Linda Hamilton
發布: 2024-12-31 03:03:14
原創
190 人瀏覽過

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

在 PostgreSQL 中選擇按類別分組的最大日期 ID

為了確定表中每個類別的最大日期 id,PostgreSQL 提供了合適的方法。讓我們考慮一下範例資料:

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

為了達到預期的結果,我們可以利用 PostgreSQL 的 DISTINCT ON 子句。這個子句允許我們根據指定的表達式選擇唯一的行,並按另一列對結果進行分組。在本例中,我們將按類別對行進行分組,並選擇每組中具有最大日期的不同 ID。

以下是完成此操作的查詢:

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

DISTINCT ON 子句確保僅選擇每個不同類別值的第一次出現。 ORDER BY 子句首先按類別升序(字母順序)對結果進行排序,然後按日期降序排序。此排序可確保每個類別的最新日期的行首先出現。

執行此查詢將產生以下結果:

id
7
2
6

這些 ID (7, 2, 6) 代表分別為類別 a、b 和 c 的最長日期。

以上是如何在 PostgreSQL 中找到每個類別的最大日期 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板