我正在尝试创建一份报告,以了解订单下达的时间,因此我需要按时间对它们进行求和。例如,我想要在1到1:59之间放置所有订单的总和,然后是下一行列出2:00到2:59之间所有订单的总和等。该字段是日期时间变量,但是对于生活我,我一直无法找到正确的查询来做到这一点。任何建议让我走上正确的道路将不胜感激。
由于
答案 0 :(得分:1)
如果幸运的话,它是mysql,而且订单总数是指订单数量而不是价值数量:
select date_format(date_field, '%Y-%m-%d %H') as the_hour, count(*)
from my_table
group by the_hour
order by the_hour
答案 1 :(得分:0)
这个分组之王(使用计算字段)肯定不会随着时间的推移而扩展。如果你真的需要经常执行这个特定的GROUP BY / ORDER BY,你应该创建一个额外的字段(一个UNSIGNED TINYINT字段就足够了)存储小时并在该列上放置一个INDEX。
当然,如果你的桌子变得很大,如果它很小(由于它实际上只是服务器配置和功能的问题,因此无法在单纯的记录中说明),你可能不会注意到性能差异。