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

PostgreSQL中如何為每個類別選擇最大日期的ID?

Barbara Streisand
發布: 2024-12-27 18:28:11
原創
767 人瀏覽過

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

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

要擷取PostgreSQL 中每個類別的最大日期ID,我們可以使用強大的DISTINCT ON 子句,它是標準DISTINCT 指令的擴充。此子句允許我們根據特定條件聚合數據,同時保留各個行的唯一性。

考慮以下範例資料:

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使用DISTINCT ON 的類別語法為:

SELECT DISTINCT ON (category)
       id
FROM   tbl
ORDER  BY category, date DESC;
登入後複製

結果輸出將be:

id
7
2
6
登入後複製

此查詢首先按類別升序對資料進行排序,然後按日期降序排序。然後,DISTINCT ON 子句確保對於每個不同類別,僅顯示具有最大日期的行,從而產生所需的輸出。

如果日期列允許 NULL 值,則包含 NULL 很重要LAST 子句確保 NULL 值排在最後。例如:

SELECT DISTINCT ON (category)
       id
FROM   tbl
ORDER  BY category, date DESC NULLS LAST;
登入後複製

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

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