[英]Oracle get the last date for one month
我對查詢和數據庫不是很好。 我有以下數據表
Date ID Value
20160601 1 300
20160607 1 301
20160601 2 600
20160607 2 601
20160501 1 250
20160507 1 240
20160501 2 800
20160507 2 801
我的要求是為每個ID選擇給定月份的最后日期並顯示值。 例如,如果我選擇第5個月,結果將是:
Date ID Value
20160507 1 240
20160507 2 801
依使用者輸入的月份而定。
我知道它可能看起來很簡單,但是我真的很受困擾,希望對您有所幫助。 謝謝。
假設date
是一個實際的日期列(應如此),則可以使用extract
來比較月份值,然后使用row_number() over ...
分析函數來獲取每個id
值的最新行:
select date, id, value
from (select date, id, value,
row_number() over (partition by id order by date desc) as rn
from tbl
where extract(month from date) = 5)
where rn = 1
當然,我假設您的實際日期列稱為別的名稱,因為date
是保留字。
查找最大日期,然后選擇具有該日期的所有行。
select *
from table
where date = (select max(date) from table where date like '201605%')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.