Hive 实现 分组后随机取N条数据

hive取随机的数据,可以使用rand()函数,用rand()对数据排序,取topN

如果要用到分组取随机数,比如每个班级随机取10人,针对这种每个分组取topN的情况,可以使用

row_number() over(partition by fieldx order by rand()) as rn
select id,
       class_id
from(
select id,
       class_id,
       row_number() over(partition by class_id order by rand()) as rn 
from table ) tb
where tb.rn <= 10

发布了175 篇原创文章 · 获赞 76 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/qq_29232943/article/details/104635492