hive如何限制组中的条目数

mrphzbgm  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(340)

我最近在学Hive,遇到了一些问题。。。
我有一张表叫做sample:

USER_ID PRODUCT_ID NUMBER
1       3          20
1       4          30
1       2          25
1       6          50
1       5          40
2       1          10
2       3          15
2       2          40
2       5          30
2       3          35

如何使用配置单元按用户id对表进行分组,在每个组中按数字的描述顺序排列记录,在每个组中我最多要保留3条记录。
我想要的结果是:

USER_ID PRODUCT_ID NUMBER(optional column)
1       6          50
1       5          40
1       4          30
2       2          40
2       3          35
2       5          30

or

USER_ID PRODUCT_IDs 
1       [6,5,4]
2       [2,3,5]

有人能帮我吗?。。非常感谢!!!!!!!!!!!!!!!!

5t7ly7z5

5t7ly7z51#

试试这个,

select user_id,product_id,number
from(
select user_id,product_id,number, ROW_NUMBER() over (Partition BY user_id) as RNUM
from (
   select user_id, number,product_id
   from SAMPLE
   order by number desc
) t) t2
where RNUM <=3

输出

1   6   50
1   5   40
1   4   30
2   2   40
2   3   35
2   5   30

配置单元版本应该是0.11或更高版本,我可以知道您的版本是否更低吗

相关问题