下面返回按 的值分层10%的A和X列的样本X。
select A, X from(
select A,
count(*) over (partition by X) as cnt,
rank() over (partition by X order by rand()) as rnk
from my_table) table
where rnk <= cnt*0.1
Run Code Online (Sandbox Code Playgroud)
换句话说,如果X取值,[X0, X1]它返回以下的并集:
X = X0X = X1如何按多列(例如,)的元组值对查询进行分层?XY
例如,如果X采用 values[X0, X1]而 Y 采用 values [Y0, Y1],我想得到一个样本,它是以下各项的并集:
X = X0和Y=Y0X = X0和Y=Y1X = X1和Y=Y0X = X1和Y=Y1