約 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% ではなく)。
どうすればこの問題にアプローチできますか? ありがとうございました。