我有一个使用CakePHP的PHP应用程序。我需要提供一个表格,显示每月每天的特定事件的数量。每个事件都在DB中记录,并带有名称和数据。为此创建表的最佳方法是什么,我是否真的需要进行31次SQL调用来计算每天的事件,或者取出整个月的数据,然后在我的应用程序中解析它,或者是否有更好地找到与蛋糕一起使用的命令?
答案 0 :(得分:4)
您可以对事件进行计数,并GROUP BY它们发生的日期。
示例:
SELECT eventDate, COUNT() as 'events'
FROM events
GROUP BY eventDate
ORDER BY eventDate ASC
这可能会产生类似于以下结果:
2009-08-11 | 23
2009-08-09 | 128
2009-08-06 | 15
如果您将日期和时间存储为eventDate,则需要使用substr()函数来获取仅按日期分组的事件:
SELECT substr(eventDate, 1, 10) as 'date', COUNT() as 'events'
FROM events
GROUP BY substr(eventDate, 1, 10)
ORDER BY eventDate ASC