背景
我记得在很早以前我就写过《电商实时增长曲线》这个案例,最近一段时间很多用户想获得精确到天级别的订单总数或者是成交额!其实和上面那个案例原理上是一致的,唯一不同的怎么取以天为单位的维度的数据!接下来我给大家可以写一个小案例!
操作
声明好数据源表、数据结果表。根据业务的事件时间来做分组统计每天的成交金额和订单数!
SQL代码
--实时的流式源表1
CREATE TABLE datahub_input1 (
TIME VARCHAR,
Price BIGINT,
NUMBER BIGINT
) WITH (
type='datahub'
);
CREATE TABLE RDS_OUT (
TIME VARCHAR,
Total_Price BIGINT,
Total_quantity BIGINT
) WITH (
type='RDS'
);
INSERT INTO RDS_OUT
SELECT
to_date(time),
sum(Price),
COUNT(NUMBER)
FROM
datahub_input1
GROUP BY to_date(time);
难点解析
GROUP BY to_date(time)
从上述的代码中可以看出整个作业是很简单的,用户大家比较难以理解或者是不知道怎么取每天的时间,大家的很多错误比如用NOW这个函数但是大家忽略用NOW的话其实使用的系统当前时间,是不推荐大家使用的。正确的应该用EVENT TIME也就是业务事件时间这样才是合理的!用
GROUP BY to_date(time)这个时间作为维度,最后静态数据库里的数据就是根据每一天作为KEY得出后面聚合后的值。例如:(2018-04-01,100000,1000 ).