У меня есть база данных, которая показывает мне различные статистические данные о разных кампаниях, каждая строка имеет имя временной отметки с именем «дата».
Я написал код для выбора и суммирования диапазона дат, например: 21-24 / 07/2010.
Теперь мне нужно добавить опцию, чтобы выбрать диапазон дат, а также сгруппировать статистику для каждого X дней.
Допустим, пользователь выбирает статистику за весь месяц: 01 / 07-31 / 07. Я хотел бы представить ему статистику, сгруппированную по X дням, скажем, 3, чтобы он увидел статистику 01-03 / 07, 04-06 / 07,07-09 / 07 и так далее ...
Мне почти удалось сделать это с помощью этого кода:
SELECT t1.camp_id,from_days( floor( to_days( date ) /3 ) *3 ) AS 'first_date'
FROM facebook_stats t1
INNER JOIN facebook_to_campaigns t2 ON t1.camp_id = t2.facebook_camp_id
WHERE date
BETWEEN 20100717000000
AND 20100724235959
GROUP BY from_days( floor( to_days( date ) /3 ) *3 ) , t2.camp_id
Он действительно группирует его (по 3 дням), но проблема в том, что по какой-то причине он начинается с 16/07, а не 17/07, а затем группируется каждый раз по 3 дня.
Хотелось бы услышать решение кода или я дал, или лучшее решение, которое вы имеете в виду.