准备
- group by的基本用法参考
问题
在订单系统中,我们一般会记录订单的提交时间,格式如下2017-07-13 12:30:00;如果需要本周或者本月每天的订单提交量,SQL语句应该如何编写?
- 首先,我们能想到的笨法子就是,使用时间字段的区间,一天天的循环查询,这样查询一个月的数据,就要循环30(28\29\31)次,效率较低
- 其次,我们会想到,使用group by分组查询,但是,时间字段包含时分秒,无法进行分组
- group by的字句,其实可以跟随函数来处理字段,只需要我们使用时间
函数将时间处理为年月日格式即可
答案
-
准备一张表,如下
- SQL语句
SELECT group_concat(order_no),count(*),date_format(create_time,"%y-%m-%d") as date FROM test.order_no group by date_format(create_time,"%yyyy-%m-%d"); - 结果,如下
结束
group by字句可以结合其他的函数来实现自己的高级查询,可以视实际情况灵活调整