我有一个疑问
SELECT count(dayofweek(created)) FROM `rental`
WHERE dayofweek(created) < 6
AND time(created) between "10:00:00" and "10:30:00"
我每天每半小时重复一次查询,以查看最繁忙的时间,即该期间的租赁数量。
有没有办法将整个事情作为 1 个查询来完成,即输出如下所示:
period 1 | 1200
period 2 | 2130
period 3 | 2453
等等?
现在我一遍又一遍地重复它,非常乏味...... 谢谢
最佳答案
我最好的跨数据库管理系统方法是在“rental”表中添加一列,其中包含一个整数,将值时间(创建)表示为 30 分钟时段(即 0 = 1970 年 1 月 1 日 00:00:00 到 00 :29:59, 1 = 1 jan 1970 00:30:00 到 00:59:59, 2 = 1 jan 1970 01:00:00 到 01:29:59 -- 这很简单,基本上就是时间戳/30000 向下舍入),然后使用该字段对值进行分组。
您可以即时进行除法,但这会在某些 DBMS 上产生分组问题,该解决方案更具可扩展性并且与几乎任何 dbms 完全兼容。
希望有帮助。
关于mysql - 将sql查询结果分成半小时部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040163/