簡體   English   中英

HIVE如何限制組中的條目數

[英]HIVE how to limit number of entries in group

這些天我正在學習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對表進行分組,並在每個組中按DESBER順序排列記錄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 

產量

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

hive版本應該是0.11或更高,我可以知道你的版本是否更低

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM