有个需求,是要一天每半个小时,统计一次消耗累计,共48个数据点。
刚开始,想把全天数据拉出来,然后脚本搞定。最后,灵感一来,通过一个取巧的办法,可以简单的统计,不用脚本,如下:
drop table t_1213_dq_tmp4;
create table t_1213_dq_tmp4 as
select a.hour,case when a.minute<=30 then '0-30' else '30-60' end as minute,sum(a.xiaohao) as xiaohao
from
(
select name,split(split(clicktime,' ')[1],'\:')[0] as hour,cast(split(split(clicktime,' ')[1],'\:')[1] as bigint) as minute,sum(xiaohao) as xiaohao
from t_1213_dq_tmp1
group by name,split(split(clicktime,' ')[1],'\:')[0],split(split(clicktime,' ')[1],'\:')[1]) a
group by a.hour,case when a.minute<=30 then '0-30' else '30-60' end;
这样把时间点分组以后,就能知道0-30,和30-60两个不同的时间段的累计消耗了;然后再排序,画