CREATE TABLE test(
userId string,
visitDate string,
visitCount INT )
ROW format delimited FIELDS TERMINATED BY "\t";
INSERT INTO TABLE test.test1
VALUES
( 'u01', '2017/1/21', 5 ),
( 'u02', '2017/1/23', 6 ),
( 'u03', '2017/1/22', 8 ),
( 'u04', '2017/1/20', 3 ),
( 'u01', '2017/1/23', 6 ),
( 'u01', '2017/2/21', 8 ),
( 'u02', '2017/1/23', 6 ),
( 'u01', '2017/2/22', 4 );
select userId,
visitMonth,
cnt,
sum(cnt) over (partition by userId order by cnt) sum_
from (select userId, visitMonth, sum(visitCount) cnt
from (select userId, date_format(regexp_replace(visitDate, '/', '-'), 'yyyy-MM') visitMonth, visitCount
from test1) t1
group by userId, visitMonth) t2
order by userId;
查询结果:

该博客讨论了如何使用SQL进行数据聚合,特别是通过窗口函数实现用户访问月计数及累计求和。示例中展示了创建表格、插入数据以及执行复杂查询的过程,查询结果展示了按用户和月份分组的访问次数及其累计值。
570

被折叠的 条评论
为什么被折叠?



