9

約 1,000 万行と 4 列のテーブルがあり、主キーはありません。列 2 3 4 (x2 x3 および x4) のデータは、列 1 X1 で識別される 50 のグループによってグループ化されます。

テーブルから 5% のランダム サンプルを取得するために、私は常に使用してきました

SELECT TOP 5 PERCENT *
FROM thistable
ORDER BY NEWID()

結果は約 500,000 行を返します。ただし、一部のグループは、この方法でサンプリングすると、サンプル内での表現が (元のサイズと比較して) 不均等になります。

今回は、より良いサンプルを取得するために、列 X1 で特定された 50 のグループのそれぞれから 5% のサンプルを取得したいと考えました。したがって、最後に、X1 の 50 個のグループのそれぞれで行の 5% のランダム サンプルを取得できます (テーブル全体の 5% ではなく)。

どうすればこの問題にアプローチできますか? ありがとうございました。

4

1 に答える 1