0

テーブルがあるとします:

HH  SLOT  RN
--------------
 1     1  null
 1     2  null
 1     3  null
--------------
 2     1  null
 2     2  null
 2     3  null

RN を 1 から 10 までの乱数に設定したいと考えています。テーブル全体で数値を繰り返すのは問題ありませんが、特定の HH内で数値を繰り返すのは良くありません。例えば、:

HH  SLOT  RN_GOOD  RN_BAD
--------------------------
 1     1        9       3
 1     2        4       8
 1     3        7       3  <--!!!
--------------------------
 2     1        2       1
 2     2        4       6
 2     3        9       4

違いがある場合、これは Netezza にあります。これは私にとって本当のヘッドスクラッチャーです。前もって感謝します!

4

3 に答える 3

0

私はSQLの専門家ではありませんが、おそらく次のようなことをします:

  1. カウンタ初期化 CNT=1
  2. 各グループからランダムに 1 行をサンプリングし、C_NULL_RN などの NULL RN のカウントを行うようなテーブルを作成します。
  3. 各行の確率 C_NULL_RN/(10-CNT+1) で、RN として CNT を割り当てます
  4. CNT をインクリメントしてステップ 2 へ
于 2013-07-31T01:38:24.820 に答える