以下は、 の値で階層化されたおよび列の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
言い換えればX
、値を取る場合[X0, X1]
、次の結合を返します。
- 行の 10%
X = X0
- 行の 10%
X = X1
複数の列 (例: ) のタプルの値でクエリを階層化するにはどうすればよいですか?X
Y
たとえば、X
値[X0, X1]
を取り、 Y が値を取る場合[Y0, Y1]
、次の和集合であるサンプルを取得したいと思います。
X = X0
および行の 10%Y=Y0
X = X0
および行の 10%Y=Y1
X = X1
および行の 10%Y=Y0
X = X1
および行の 10%Y=Y1