济南制作网站公司吗,网络规划设计师下午题2023估分,威海北京网站建设,安微省建设厅田网站目录
前言
按1小时分组统计
按2小时分组统计
按X小时分组统计 前言
统计数据时这种是最常见的需求场景#xff0c;今天写需求时发现按2小时进行分组统计也特别简单#xff0c;特此记录下。
按1小时分组统计
sql#xff1a;
select hour(pass_time) …目录
前言
按1小时分组统计
按2小时分组统计
按X小时分组统计 前言
统计数据时这种是最常见的需求场景今天写需求时发现按2小时进行分组统计也特别简单特此记录下。
按1小时分组统计
sql
select hour(pass_time) as hour,(case when is_out 0 then in when is_out 1 then out end) as name,count(id) as count
from vehicle_traffic_record
where (pass_time between 2023-08-03 and 2023-08-03 23:59:59)
group by hour, name;
返回值 没啥好说的直接使用 hour() 函数获取时间字段的小时部分进行分组统计即可
按2小时分组统计
sql
SELECT FLOOR(HOUR(pass_time) / 2) * 2 as hour,(case when is_out 0 then in when is_out 1 then out end) as name,count(id) as count
FROM vehicle_traffic_record
where (pass_time between 2023-08-03 and 2023-08-03 23:59:59)
group by hour, name
order by hour;
返回值 思路是一样的先使用 hour() 函数获取时间字段的小时部分然后除以2并使用 floor() 向下取整最后乘以2以获得2小时间隔的起始值。
如果不好理解这里将语句拆分下
select pass_time,HOUR(pass_time),HOUR(pass_time) / 2,FLOOR(HOUR(pass_time) / 2),FLOOR(HOUR(pass_time) / 2) * 2
from vehicle_traffic_record
where (pass_time between 2023-08-03 and 2023-08-03 23:59:59); 按X小时分组统计
其余小时分组均同理比如按3小时分组替换上面的2即可