Вадим Т.
3240 сообщений
#13 лет назад
Тут на форуме только что кто-то задавал вопрос, как SQL запросом получить статистику за месяц с интервалом в два дня. Потом почему-то удалил тему. Жаль, я только ответить хотел. В общем, не понимаю, зачем нужно удалять темы, тем более из раздела «Программирование». Оно же еще кому-то может впоследствии пригодиться, если не сейчас, то через несколько лет... Ну ладно.

В общем, вот пример запроса, который выводит количество записей за каждые два дня заданного месяца для таблицы table1 и полем timestamp1 типа TIMESTAMP:

SELECT DAY(timestamp1), COUNT(*)
FROM table1
WHERE timestamp1 BETWEEN ? AND ?
GROUP BY (DAY(timestamp1)+1) DIV 2
ORDER BY 1;

Например, если нужно получить записи за август 2011, условие WHERE будет: timestamp1 BETWEEN DATE('2011-08-01' AND DATE('2011-08-31'.

Да, это медленно, но для небольшого количества записей (например несколько десятков тысяч записей в месяц) вполне подходит.
А вот для больших таблиц с миллионами записей имеет смысл делать отдельную таблицу для статистики.
Сергей К.
1649 сообщений
#13 лет назад
tvv, я успел задать ответ в той теме. У меня та же реализация была, только я не так конкретно все описывал. Зачет.
А тему да, не надо удалять, с этим соглашусь.