擷取 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中文網其他相關文章!