我需要為每個 id 獲取每個月/年的最后一條記錄。
我的表每天為每個 id 捕獲一個累積的訂單值。所以,我需要最后我只有每個 id 這個月的最后一條記錄。
我相信沒有簡單的東西,但是找到的例子我無法復制我的案例。
這是我的輸入資料和預期結果的示例:db_fiddle。
我的嘗試不包括按月和年分組:
select ar.id, ar.value, ar.aquisition_date
from table_views ar
inner join (
select id, max(aquisition_date) as last_aquisition_date_month
from table_views
group by id
)ld
on ar.id = ld.id and ar.aquisition_date = ld.last_aquisition_date_month
uj5u.com熱心網友回復:
你可以這樣做:
with tn as (
select
*,
row_number() over (partition by id, date_trunc('month', aquisition_date) order by aquisition_date desc) as rn
from table_views
)
select * from tn where rn = 1
tncte 為每個月/id 添加了一個按日期降序遞增計數的行號。然后,對于每個 id,您只采用帶有 的行號,rn=1這是任何給定月份的最后一個 aquisition_date
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439760.html
標籤:sql PostgreSQL 每组最大 n
下一篇:如何通過連接多個表進行更新?
