1.首先是简单的按每小时分组查询总数
SELECT
hour(表_时间) hour,
count(表_id) count
FROM 表_name
WHERE date_format(表_时间, '%Y-%m-%d') = current_date//格式化时间
GROUP BY date_format(表_时间, '%Y%m%d-%H'), hour//按每小时分组
查出来的效果如下:
但是我们看到,如果某个小时没有数据就会直接查不出来、这不是我们想要的效果。
2.所以我就自己创建时间分组去查
其实sql语句也很强大的。
特别提一下ifnull这个函数,ifnull(null, a),ifnull(a,b), ifnull里有两个数,如果第一个不是null,是a非null,就都等于a, 如果a=Null,就都为a。if(true,a,b), if(false,a,b) 这个就是第一个如果是true,就等于a,false就等于b,有点像三元表达式
SELECT timetable