我在Oracle 11g數據庫中有一個表,它是類似以下內容:尋找球幫助構造SQL查詢
process_times:
--------------------------------------------
machine_id | load_id | start_time | end_time
一些示例記錄可能是這樣的:
process_times:
----------------------------------------------------------------
machine_id | load_id | start_time | end_time
----------------------------------------------------------------
220 | 25 | 06/24/2012 04:29:00 | 06/25/2012 04:42:38
187 | 23 | 06/22/2012 14:41:00 | 06/24/2012 00:34:32
187 | 18 | 06/20/2012 11:57:00 | 06/20/2012 23:53:51
我想寫一個查詢,將返回一個關係與表示每個機器的負載之間停機時間的屬性。停機時間是指給定機器的每個end_time和接下來的start_time之間的時間。
因此,對於上面的例子中我會得到這樣的結果:
result:
----------------------
machine_id | down_time
----------------------
220 | 0
187 | (06/22/2012 14:41:00 - 06/20/2012 23:53:51) -- the actual result, I wrote it like this to be more clear
我一直是這樣修修補補下午的很大一部分,它只是一個必要的前向查詢我真的想寫,所以我想我會發布,看看是否有人有任何指示讓我朝着正確的方向前進。
編輯我應該提到的另一個約束是我需要讓結果列表顯示每臺機器的單獨停機時間,而不僅僅是給定時間段內停機時間的總量。
您使用的數據庫是? – Oded
@已更新數據庫〜對不起! – user12345613
我認爲通過簡單地查找行時間增量來計算「正常運行時間」會比較容易,然後從總時間中減去它(這可能類似'min(start_time) - max(end_time)') – jedwards