今天做了一道hive面试题,我看网上的答案,虽然能实现效果,但是感觉性能不行,代码太长,过于复杂。我用分析函数来做一下
1 题目详情可以参考https://blog.csdn.net/JENREY/article/details/79871835
2 我大致描述一下题目
-
原题目:现有这么一批数据,现要求出,每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数
-
三个字段的意思:
用户名,月份,访问次数
A,2015-01,5
A,2015-01,15
B,2015-01,5
A,2015-01,8
B,2015-01,25
A,2015-01,5
A,2015-02,4
A,2015-02,6
B,2015-02,10
B,2015-02,5
A,2015-03,16
A,2015-03,22
B,2015-03,23
B,2015-03,10
B,2015-03,11
最后结果展示:
用户 月份 最大访问次数 总访问次数 当月访问次数
A 2015-01 33 33 33
A 2015-02 33 43 10
A 2015-03