首頁 > 資料庫 > mysql教程 > 如何有效率地檢索 PostgreSQL 中每個唯一識別碼的最後一行?

如何有效率地檢索 PostgreSQL 中每個唯一識別碼的最後一行?

DDD
發布: 2024-12-17 14:59:10
原創
464 人瀏覽過

How to Efficiently Retrieve the Last Row for Each Unique Identifier in PostgreSQL?

Postgresql:提取每個唯一識別碼的最後一行

在PostgreSQL 中,您可能會遇到需要從與資料集中每個不同標識符關聯的最後一行。考慮以下資料:

 id 日期another_info<br> 1 2014-02-01 kjkj<br> 1 2014-03-11 ajskj<br> 1 2014-05-133 kSd 2014-02-01 SADA<br> 3 2014-02 -01 sfdg<br> 3 2014-06-12 fdsA<br>
登入後複製

要檢索資料集中每個唯一id 的最後一行信息,您可以使用🎜>

要檢索資料集中每個唯一id 的最後一行信息,您可以使用Postgres 的高效能unique on 運算子:

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
登入後複製

此查詢將傳回以下內容輸出:

; id date another_info<br> 1 2014-05-13 kgfd<br> 2 2014-02-011 SADA <br> 3 2014-06-12 fdsA<br>
登入後複製

如果您願意跨資料庫解決方案可能會犧牲一點效能,您可以使用視窗函數:

select id, date, another_info
from (
  select id, date, another_info, 
         row_number() over (partition by id order by date desc) as rn
  from the_table
) t
where rn = 1
order by id;
登入後複製

大多數情況下,涉及視窗函數的解決方案比使用子查詢更快。

以上是如何有效率地檢索 PostgreSQL 中每個唯一識別碼的最後一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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