我想在我的hive表的顶部创建一个视图,但该视图应该包含以下内容只占总记录的10%。 Count(*)/10。我怎么能用 "ROWNUM() "或 "RANK "函数来做。如果数据是随机的,那将是非常有帮助的。
Count(*)/10
aor9mmx11#
如果大约10%的样本已经足够好了,只需包括。
create view v_t select t.* from t where rand() < 0.1;
对于一张大table来说,这应该是相当接近于精确的10%。
bpzcxfmw2#
或者你也可以使用下面的ntile窗口功能。
create view v_t select * from (select *, ntile(10) over(order by rand()) as percentile from tablename) as A where percentile=1
我已经在postgres中测试了一个类似的查询。
2条答案
按热度按时间aor9mmx11#
如果大约10%的样本已经足够好了,只需包括。
对于一张大table来说,这应该是相当接近于精确的10%。
bpzcxfmw2#
或者你也可以使用下面的ntile窗口功能。
我已经在postgres中测试了一个类似的查询。