您的当前位置:首页正文

mysql-HIVE如何限制组中的条目数

2024-11-22 来源:个人技术集锦

这些天我正在学习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

如何使用HIVE按user_id对表进行分组,并在每个组中按DESC顺序按NUMBER对记录进行排序,在每个组中我要保留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] 

尝试这个,
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
显示全文