因为有业务需求,所以查看了几篇别人的博客,发现有错误的地方:
1.http://www.cnblogs.com/mobiwangyue/p/8328758.html
2.https://www.jianshu.com/p/51599bab0c00
为了验证业务需求的做法,特地模拟了一些假的数据做相关demo,数据如下:
1. hive
2. show databases;
3. use kukatest2;
4. show tables;
5. CREATE TABLE pv_web(order_time date, province string, city string,channel string,order_count string,order_amount string) row format delimited fields terminated by ',' ;
6. Load data local inpath ‘/carson/order.csv’overwrite into table order.
with temp1 as (select province,city,channel,order_amount from t1),
temp2 as (
select province,city,channel,sum(order_amount) as num, row_number() over (partition by province,city order by sum(order_amount) desc) rank
from temp1
-- where province,city 限制条件
group by province,city,channel
)
select * from temp2 a where a.rank <= 2
-- 方式一
select class, max(grade) from score group by class;
-- 方式二
select class, grade from
(select *, row_number() over
(partition by class order by grade desc) grade_desc
) from score score_sorted)
where grade_desc=1;
-- 方式三
select name, class, grade from
(select *, row_number() over
(partition by class order by grade desc) grade_desc
) from score score_sorted)
where grade_desc=1;
其他相关博客:https://blog.csdn.net/dapanbest/article/details/87800141
https://blog.csdn.net/qq_25221835/article/details/82762416(重点推荐看这版本)