每个人所在公司几个月领钱金额最大的是多少,迄今为止领了多少钱

一、数据如下:
A,2015-01,5
A,2015-02,15
A,2015-03,5
A,2015-04,8
A,2015-05,25
A,2015-06,5
B,2015-01,4
B,2015-02,6
B,2015-03,10
B,2015-04,5
C,2015-01,16
C,2015-02,22
C,2015-03,23
C,2015-04,10
C,2015-05,1

二、创建表t_access
create external table if not exists monthmoney(
name string comment '用户名',
month string comment '月份',
money int comment '单个月金额'
)
row format delimited fields terminated by ",";

三、导入数据
load data local inpath '/home/bigdata/text' into table monthmoney;

四、代码如下

select
a.name,
a.mnth,
max(money) over(partition by a.name order by a.mnth) as money1, --迄今为止单个月最大领了多少钱
sum(money) over(partition by a.name order by a.mnth) as money2  --这个人所在的几个月一共领了多少钱
from(
    select
    name,
    month(from_unixtime(unix_timestamp(month,'yyyy-MM'))) as mnth,
    money
    from monthmoney
)as a

五、结果如下

六、这里有个问题:用sortby 为什么报错?? order 只用一个reduce 这则么优化?


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部