Hive之row_number() over分组排序

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

1.row_number() over()排序功能

分组排序:

已有表

E	E	E	9
C	E	A	5
B	B	E	8
D	D	C	6
E	A	B	6
C	B	D	10
C	E	C	4
E	E	D	1
D	C	C	8
D	D	E	3
B	D	A	9
A	A	C	4
C	B	B	3
D	C	A	2
C	E	D	10
A	C	C	3
D	D	C	1
A	C	D	5
E	A	D	1
B	C	A	5
C	E	B	8
B	E	B	3

  执行

select f1 as user_id,count(1) as times
from test_data
group by f1

 

A 16
B 10
C 10
D 12
E 12

 

现要求每个次数仅展示一名用户

select user_id,times
from(
select user_id,times,row_number() over(partition by times order by user_id) rn
from(
select f1 as user_id,count(1) as times
from test_data
group by f1) t1)
t2
where rn<2
order by times;

 

B 10

D 12
A 16

转载于:https://www.cnblogs.com/BetterThanEver_Victor/p/9402070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值