Sql 如何将查询答案传递到极限函数Impala
我试图在黑斑羚中对20%的表进行采样。我在某处听说,内置的黑斑羚采样功能有问题 是否有方法将子查询传递给impala limit函数以对整个表的n%进行采样 我有这样的想法:Sql 如何将查询答案传递到极限函数Impala,sql,hadoop,impala,Sql,Hadoop,Impala,我试图在黑斑羚中对20%的表进行采样。我在某处听说,内置的黑斑羚采样功能有问题 是否有方法将子查询传递给impala limit函数以对整个表的n%进行采样 我有这样的想法: select * from table_a order by rand() limit ( select round( (count(distinct ids)) *.2,0) from table_a) ) 子查询为我提供了所有记录的20%我不确定Impala是否具有某些数据库所具有的特定采样逻辑。但您可以使用窗
select
* from
table_a
order by rand()
limit
(
select
round( (count(distinct ids)) *.2,0)
from table_a)
)
子查询为我提供了所有记录的20%我不确定Impala是否具有某些数据库所具有的特定采样逻辑。但您可以使用窗口功能:
select a.*
from (select a.*,
row_number() over (order by rand()) as seqnum,
count(*) over () as cnt
from table_a
) a
where seqnum <= cnt * 0.2;