У меня есть таблица базы данных, которая выглядит примерно так:
| id | clock | info
----------------------------------------------
| 1 | 1262556754 | some info
| 2 | 1262556230 | some other info
| 3 | 1262556988 | and another
| 4 | 1262555678 | and some more
Она содержит записи журнала и временную метку unix, когда этот журнал был записан. Что мне нужно, так это получать еженедельный отчет о том, сколько записей журнала было за каждую неделю. Вот запрос, который я написал:
SELECT
DATE_FORMAT(FROM_UNIXTIME(clock), "%U") AS week
count(*) as cnt
FROM logs
WHERE DATE_FORMAT(FROM_UNIXTIME(clock), "%Y") = '2010'
GROUP BY week
Это дает следующий результат:
| week | cnt
-------------------------------
| 1 | 55
| 2 | 134
| 4 | 765
| 20 | 65
Отлично! Но я бы хотел видеть диапазоны дат вроде 08 февраля 2010 г. 00:00 - 15 февраля 2010 г. 00:00
, поэтому мой набор результатов будет выглядеть так:
| day_start | day_end | cnt
---------------------------------------------------------
| 08 Feb 2010 00:00 | 15 Feb 2010 00:00 | 55
| 15 Feb 2010 00:00 | 22 Feb 2010 00:00 | 76
| 22 Feb 2010 00:00 | 01 Mar 2010 00:00 | 756
Есть ли способ сделать это?