首頁 > 資料庫 > mysql教程 > 如何使用DISTINCT ON高效率地選擇PostgreSQL中每個類別的最大日期ID?

如何使用DISTINCT ON高效率地選擇PostgreSQL中每個類別的最大日期ID?

DDD
發布: 2024-12-27 17:10:17
原創
482 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板