如何在配置单元中创建包含 table 记录的 10% 的视图?
How to Create view with 10% of record of a table in hive?
我想在我的配置单元之上创建一个视图 table 但该视图应该包含
仅占总记录的 10%。 Count(*)/10
如何使用 ROWNUM()
或 RANK
函数实现。
如果数据是随机的,那将非常有帮助。
如果大约 10% 的样本就足够了,只需包括:
create view v_t
select t.*
from t
where rand() < 0.1;
对于较大的 table,这应该非常接近 10%。
或者您可以使用 ntile window 函数,如下所示:
create view v_t
select * from
(select *, ntile(10) over(order by rand()) as percentile from tablename) as A
where percentile=1
我在 Postgres 中测试了类似的查询。 Here is a demo
我想在我的配置单元之上创建一个视图 table 但该视图应该包含
仅占总记录的 10%。 Count(*)/10
如何使用 ROWNUM()
或 RANK
函数实现。
如果数据是随机的,那将非常有帮助。
如果大约 10% 的样本就足够了,只需包括:
create view v_t
select t.*
from t
where rand() < 0.1;
对于较大的 table,这应该非常接近 10%。
或者您可以使用 ntile window 函数,如下所示:
create view v_t
select * from
(select *, ntile(10) over(order by rand()) as percentile from tablename) as A
where percentile=1
我在 Postgres 中测试了类似的查询。 Here is a demo