6

以下は、 の値で階層化されたおよび列の10%サンプルを返します。AXX

  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

複数の列 (例: ) のタプルの値クエリを階層化するにはどうすればよいですか?XY

たとえば、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
4

1 に答える 1

2

上記の方法を使用しますが、検討したい列のハッシュを使用します。

于 2015-06-22T15:00:14.590 に答える