Hive之row_number() over分组排序

Posted 1156184981651a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

来源:百度站长

以上是关于Hive之row_number() over分组排序的主要内容,如果未能解决你的问题,请参考以下文章

ROW_NUMBER() OVER()函数用法;(分组,排序),partition by

ROW_NUMBER() OVER()函数用法;(分组,排序),partition by

MySQL - ROW_NUMBER() OVER()函数用法详解(分组排序)

Oracle分析函数之排序 row_number() & rank()

ROW_NUMBER() OVER()函数用法;(分组,排序),partition by

举一反三-Pandas实现Hive中的窗口函数