簡體   English   中英

Oracle獲得最后一個月的日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM