[英]Select max date in one column based on unique dates in another
我有一個數據集,每次更改該特定日期的預測時,都會將其加載到數據庫中。 我需要能夠為每個fore_dt選擇最后一個load_dt。 下面是一個示例數據集:
load_dt, fore_dt, data,
1/1/2017, 1/14/2017, 5,
1/5/2017, 1/14/2017, 8,
1/5/2017, 1/15/2017, 9,
1/15/2017, 1/15/2017, 10,
1/17/2017, 1/16/2017, 5
結果應如下所示:
load_dt, fore_dt, data,
1/5/2017, 1/14/2017, 8,
1/15/2017, 1/15/2017, 10,
1/17/2017, 1/16/2017, 5
實際的數據集要復雜得多,並且有很多行。 在查詢中,我需要能夠選擇日期和日期之間的fore_dt。
您可以使用窗口函數row_number
來按降序load_dt的順序為每個fore_dt中的行分配序列號,然后使用簡單的where子句選擇第一行:
select *
from (
select t.*,
row_number() over (
partition by fore_dt order by load_dt desc nulls last
) as seqnum
from your_table t
) t
where seqnum = 1;
您在看max()
select max(load_dt) as load_dt, fore_dt, max(data)
from yourtable
group by fore_dt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.