码迷,mamicode.com
首页 > 编程语言 > 详细

Hive之row_number() over分组排序

时间:2020-06-21 17:53:04      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:code   select   att   target   lan   要求   from   user   rom   

语法: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

来源:百度站长

Hive之row_number() over分组排序

标签:code   select   att   target   lan   要求   from   user   rom   

原文地址:https://www.cnblogs.com/1156184981651a/p/13173161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!