2010-08-03 2 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

+0

К сожалению, он должен быть переменным, потому что мне нужно учитывать пользовательский ввод и не контролировать их выбор даты. – Kramer

+0

Тогда проще сделать один запрос для каждого фрагмента? – MPelletier

ответ

2

К группе диапазонов дат, я часто использую заявление случая:

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

Смежные вопросы