首頁 > 資料庫 > mysql教程 > 如何提取 PostgreSQL 中每個 ID 的最後一行?

如何提取 PostgreSQL 中每個 ID 的最後一行?

Patricia Arquette
發布: 2024-12-28 15:02:11
原創
560 人瀏覽過

How to Extract the Last Row for Each ID in PostgreSQL?

擷取 Postgresql 中每個 ID 的最後一行

考慮一個包含名為 id、date 和 another_info 欄位的資料集。目標是提取每個唯一 id 的最後一個資訊(行)。

為了在Postgresql 中完成此操作,通常使用兩種方法:

Distinct On Operator

Postgreon 運算符允許您指定僅傳回特定列的不同值。在這種情況下,可以如下使用運算符:

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

此查詢可確保僅傳回每個唯一 id 的最後一個實例,並按日期降序排列。

視窗函數

或者,您可以使用視窗函數來實現相同的結果。視窗函數允許您對分區的行集執行計算或聚合。在這種情況下,可以使用以下查詢:

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;
登入後複製

此查詢使用 row_number() 函數為每個 id 分區中的每一行分配一個序號。 where 子句過濾結果以僅包含具有最高 rn 值的行(即每個 id 的最後一行)。

以上是如何提取 PostgreSQL 中每個 ID 的最後一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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