Я хочу сгруппировать каждую минуту между датами 1 и 2 в следующем запросе. Также должны отображаться значения 0. Таким образом, каждая минута между датами должна отображаться. Проблема в том, что эти даты не существуют в таблице.
SELECT
click.date as 'date',
COUNT(*)
FROM click
INNER JOIN short_url surl ON click.short_url_id = surl.id
INNER JOIN article_surl ON article_surl.article_id = 3
WHERE click.date BETWEEN (?Date1:'2011-04-24 13:33:00') AND (?Date2:'2011-04-24 15:33:00')
GROUP BY DATE_FORMAT(click.date, '%Y-%m-%d %H:%i:00');
Я думаю, что единственный способ сделать это - создать временную таблицу? Каковы показатели производительности этого? Объединение в дату также не очень хорошо, потому что click.date может также иметь миллисекунды в datetime. Таким образом, DateFormat должен быть использован?
Может быть, лучше в логике моего приложения, прочитать массив и заполнить пропущенные даты 0 значениями.