У меня есть таблица событий под названием event
. Для целей этого вопроса у него есть только одно поле с именем date
.
Следующий запрос возвращает мне число событий, которые происходят в каждую дату в течение следующих 14 дней:
SELECT
DATE_FORMAT( ev.date, '%Y-%m-%d' ) as short_date,
count(*) as date_count
FROM event ev
WHERE ev.date >= NOW()
GROUP BY short_date
ORDER BY ev.start_date ASC
LIMIT 14
Результат может быть следующим:
+------------+------------+
| short_date | date_count |
+------------+------------+
| 2010-03-14 | 1 |
| 2010-03-15 | 2 |
| 2010-03-16 | 9 |
| 2010-03-17 | 8 |
| 2010-03-18 | 11 |
| 2010-03-19 | 14 |
| 2010-03-20 | 13 |
| 2010-03-21 | 7 |
| 2010-03-22 | 2 |
| 2010-03-23 | 3 |
| 2010-03-24 | 3 |
| 2010-03-25 | 6 |
| 2010-03-26 | 23 |
| 2010-03-27 | 14 |
+------------+------------+
14 rows in set (0.06 sec)
Допустим, я хочу отобразить эти события по дате. В то же время я хочу отображать максимум 10 одновременно. Как бы я это сделал?
Почему-то мне нужно ограничить этот результат суммой поля date_count, но я не знаю как.
Кто-нибудь сталкивался с этой проблемой раньше?
Любая помощь будет оценена. Спасибо
Отредактировано:
Дополнительное требование (крайне важное, упс), которое я забыл в своем первоначальном посте, состоит в том, что я хочу только целые дни.
то есть. Учитывая ограничение 10, он будет возвращать только следующие строки:
+------------+------------+
| short_date | date_count |
+------------+------------+
| 2010-03-14 | 1 |
| 2010-03-15 | 2 |
| 2010-03-16 | 9 |
+------------+------------+