我知道要获得随机的1000条记录,我可以这样做:
select a, b, month, avg(c) as c
from
(select bla bla --string parsing and other data cleanup
from table) t
group by a, b, month
order by rand()
limit 1000
但是,这将总共提供1000条记录。
我想得到的是每月1000个随机记录(因为表只是大的方式)。如果有可能,你可以帮忙重写以上内容吗?
请注意,这是一个Hive问题。
提前致谢!
答案 0 :(得分:2)
这是一种方法:
select t.*
from (select t.*,
row_number() over (partition by month order by random()) as seqnum
from t
) t
where sequm <= 1000;