2010-08-03 59 views
1

我每15分鐘收集一大組數據。我試圖在特定時間段內選擇數據,然後在該時間段內按另一個日期間隔進行分隔。並在這段時間內超過一段時間。MySQL基於日期範圍和時間的總和

例如,我希望能夠在01/01/2009和01/01/2010之間選擇數據,並按日期範圍01/01/2009 - 05/01/2009,05/02/2009進行分組 - 11/01/2009,11/02/2009 - 01/01/2010,然後在每組中選擇時間00:00:01 - 12:00:00和12:00:01 - 23:59的數據: 59

SELECT SUM(Data.usage)AS sum 
FROM Data.meter_id = Meter.id 
WHERE Data.start_read >= '2009-01-01' 
AND Data.end_read <= '2010-01-01 23:59:59' 

GROUP BY日期範圍?不知道如何分離數據。由於

+0

會有一套邏輯,你的日期範圍將會如何?例如,每3天,每5天等等,還是需要在同一個查詢中使用可變範圍? – MPelletier 2010-08-03 19:57:14

+0

不幸的是,它需要變量,因爲我需要考慮用戶輸入並且無法控制他們的日期選擇。 – Kramer 2010-08-03 20:08:22

+0

那麼對每個片進行一次查詢會更簡單嗎? – MPelletier 2010-08-03 20:20:32

回答

2

要GROUP BY日期範圍,我經常使用case語句:

Group By Case 
    When start_read between '01/01/2009' and '05/01/2010' then 'Jan-Apr 09' 
    When start_read between '05/01/2009' and '11/01/2010' then 'May-Nov 09' 
    ...etc 
+0

謝謝比爾。 – Kramer 2010-08-05 18:48:25