1
我正在嘗試爲Oracle SQL編寫一個SQL查詢以檢索特定週期頻率的最後記錄。例如,假設頻率爲季度(我也希望每月和每年都工作),如果有必要,我可以提供宿舍的開始日期和結束日期,但是我需要在每個季度檢索最後一次。我怎樣才能做到這一點?目前爲止,我的運氣有限,無法編寫大量的子查詢。在一段時間內對最後一個條目的SQL查詢
我正在嘗試爲Oracle SQL編寫一個SQL查詢以檢索特定週期頻率的最後記錄。例如,假設頻率爲季度(我也希望每月和每年都工作),如果有必要,我可以提供宿舍的開始日期和結束日期,但是我需要在每個季度檢索最後一次。我怎樣才能做到這一點?目前爲止,我的運氣有限,無法編寫大量的子查詢。在一段時間內對最後一個條目的SQL查詢
嘗試類似:
select * from
(select t.*,
row_number() over (partition by trunc(date_field, 'MON')
order by date_field desc) rn
from my_table t)
where rn = 1
幾個月。 (爲季度或年度的trunc
子句中使用,而不是「MON」 Q'或「Y」。)
SELECT col1, col2, col3...colN
FROM TableA
WHERE (colX = (SELECT MAX(Date) AS LastDate
FROM TableA
WHERE QuarterDate Between (BeginningDate AND EndingDate)
COLX是日期列,它是你的約會,你需要進行檢查,如果在本季度。
我認爲這應該工作。
你可以發佈你試過的查詢嗎?如果可能的話,你正在查詢的表結構,所以每個人都有一個更好的理解問題,並給你一個更好的答案 – Yaroslav 2012-08-06 16:20:53
雅羅斯拉夫是對的,你應該發佈樣本表結構。 – gmuhammad 2012-08-06 16:35:06
+1給馬克以很好地使用'partition by'。對於OP:爲什麼不簡單地按時間範圍進行限制並選擇max(id)的行? – alfasin 2012-08-06 18:32:33