Добрый день all!
У меня сейчас есть реализация запроса (MySQL), но вот подумал а нельзя ли его упростить? А как не знаю, вполне возможно что и нельзя.
Допустим есть пустая таблица с полем id и date (таймштамп). Возможен ли такой запрос, чтобы получить массив дата в формате день-месяц и количество id за эту дату. Но так как таблица пустая количество будет 0;
Т.е. в результате массив результата запроса за последние 10 дней
date = 14.03
count_id = 0
date = 15.03
count_id = 0
date = 16.03
count_id = 0
.......
date = 23.03
count_id = 0
Если бред спросил, соори....
ЗЫ: Т.е. у меня стоит задача получить данные за промежуток времени, даже если на определеную дату ничего нет.
1. Flash_PR - 23 Марта, 2016 - 16:37:50 - перейти к сообщению
2. Мелкий - 23 Марта, 2016 - 16:55:28 - перейти к сообщению
Mysql? Только какими-то невнятными костылями. Если очень надо, то можно. Но проще на приложении. Например, сгенерировать таблицу дат из одного поля типа date и к ней left join'ить аггрегацию по данным.
Под postgresql - элементарный generate_series
Под postgresql - элементарный generate_series
3. Flash_PR - 23 Марта, 2016 - 16:59:21 - перейти к сообщению
Мелкий пишет:
Mysql? Только какими-то невнятными костылями. Если очень надо, то можно. Но проще на приложении. Например, сгенерировать таблицу дат из одного поля типа date и к ней left join'ить аггрегацию по данным.
Ну в общем сейчас на приложении и есть. Думал есть в mysql функция итерации дат, о которой не знал. Ладно, спасибо все равно. Нельзя, так нельзя....решим по другому.
4. OrmaJever - 23 Марта, 2016 - 21:09:25 - перейти к сообщению
Мелкий пишет:
Только какими-то невнятными костылями.
А это разве сильно костыль?
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT count(*), date_format(date_row, '%d.%m') d
- FROM table_name
- WHERE date_row BEETWEN 'от' AND 'до'
- GROUP BY d