Query
如何選擇每個月的最後一條記錄
我有一張桌子:
Table1(DDate date,Deposit_Key Number , Amount Number)
一些範例數據是:
DDate Deposit_key Amount 1/1/2019 1 10 1/2/2019 1 20 1/3/2019 1 30 1/4/2019 1 40 ---- --- --- 1/31/2019 1 100
我有一個月的數據,我需要檢索該
Amount
月最後一天的數據。我的意思是我需要有100
。對此最好的查詢是什麼?我是 oracle 的新手,我想知道是否有比使用 row_number() over(partition) 更好的方法?提前致謝
Oracle 內置函式LAST_DAY可以在這里為您提供幫助。
它可以與日期或時間戳一起使用,基於您的表描述的範例是:
SELECT * FROM TABLE1 WHERE EXTRACT(DAY FROM DDATE) = EXTRACT(DAY FROM LAST_DAY(DDATE)) AND EXTRACT (MONTH FROM DDATE) = 1;
在 Oracle 中有很多方法可以處理日期,但我喜歡使用 EXTRACT,因為它可以處理日期和時間戳,這意味著您不必使用 TO_CHAR 函式。