我想在以下查询中按date1和date2之间的每分钟进行分组。还应该显示0值。所以应该显示日期之间的每一分钟。问题是这些日期在表中不存在。如何在一个时间范围内按分钟分组,并在MySQL中显示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在日期时间中也可能有毫秒。所以应该使用DateFormat? 也许这对我的应用程序逻辑更好,阅读数组并使用0值填写缺失的日期。