Имея эту простую таблицу журналов
id |val |dt
-------------------------
A 100 2014-01-15 00:00:00
A 160 2014-01-15 00:00:00
A 100 2014-01-15 01:00:00
A 160 2014-01-15 02:00:00
A 200 2014-01-15 03:00:00
A 80 2014-01-16 01:00:00
B 100 2014-01-16 02:00:00
B 200 2014-01-16 01:00:00
B 100 2014-01-15 02:00:00
and so on...
Я могу усреднить ЕДИНСТВЕННЫЙ день (15) из ЕДИНОГО заданного идентификатора (A) в указанном диапазоне (0-2), выполнив это
select id,
date(dt),
AVG(val) as av
from (SELECT id, val, dt
FROM test
WHERE id = 'A' AND
(date(dt) BETWEEN '2014-01-15' AND '2014-01-15') AND
( (time(dt) BETWEEN '00:00' AND '02:00'))) as outerTable
Я получаю этот ЕДИНСТВЕННЫЙ результат
id |date | average 00:00 to 2:00
-------------------------
A 2014-01-15 120.0000
Но как решить эту среднюю из НЕСКОЛЬКИХ дней за один и тот же период времени, но за многие дни в диапазоне месяцев? лет? как
id |date | average 00:00 to 2:00
-------------------------
A 2014-01-15 120.0000
A 2014-01-16 80.0000
A 2014-01-17 35.0000
and so on...
Необходимость зацикливания одного и того же запроса в разные дни в течение всего месяца или года, конечно, буквальный цикл можно выполнить в php, но он МЕДЛЕННЫЙ, также я мог бы зацикливать каждый идентификатор, делая его медленнее.