我有一個包含產品,日期/時間和價格的表。我將日期/時間拆分爲另一列,我只是將其小時部分分開。我需要按小時查找價格的高/低/開/關。通過在I max()/ min()的選擇部分執行子選擇並按產品&小時加入數據,我可以輕鬆獲得高/低的容易度。我現在需要打開/關閉,這將成爲每個小時的第一個記錄和每個小時的最後一個記錄。高/低/開/關應該全部相同,每小時記錄一次。用於查找彙總值的Oracle sql子查詢
示例結果。注意所有小時7條記錄的最高值是55,所以這是所有小時7條記錄中的最高值,最低值是30,因爲它是所有小時7條記錄中最低的,50是開放的,因爲第一個價格(按日期/時間排序7時15分)50。關閉在按日期排序小時的最後價格/時間是30
Product, Date, Hour, Price, High, Low, Open, Close
A, 11/12/2012 7:15, 7, 50, 55, 30, 50, 30
A, 11/12/2012 7:28, 7, 55, 55, 30, 50, 30
A, 11/12/2012 7:30, 7, 40, 55, 30, 50, 30
A, 11/12/2012 7:35, 7, 45, 55, 30, 50, 30
A, 11/12/2012 7:55, 7, 30, 55, 30, 50, 30
所以再回顧一下,高/低是很容易,因爲我在選擇部分做的子查詢該查詢針對同一個表執行max/min,但不知道如何針對打開/關閉執行相同的操作,以根據日期/時間字段獲取第一個和最後一個記錄。
每小時更新設置爲定價單;)無論如何,你後到目前爲止的任何代碼,請。如果您的表格傳入記錄按時間排序。例如下午1點的第一個記錄是公開的。然後在60分鐘後,您可以檢查哪個記錄(即您的關閉)。一般來說,每個價格記號都有一個附加時間。那麼有什麼問題? :) – bonCodigo
所以這是不是實時的歷史數據,所以我有全部的時間。我通過sql詢問如何獲得給定小時內所有記錄的第一個和最後一個。 例如我有:select price,(從price_tbl j選擇max(price),其中i.product = j.product和i.hr = j.hr)high from price_tbl我 我對min也是這樣做的,但是如何爲第一個和最後records.if甲骨文有第一()和最後()這將是容易的:) – user441521