这些天我正在学习HIVE,遇到了一些问题…
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
1 6 50
1 5 40
1 4 30
2 2 40
2 3 35
2 5 30
蜂巢版本应为0.11或更高,请问您的版本是否较低
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。