1

これは私が持っているものです:

表1

CB / A / B / C
X / 5 / 2 / 1
Y / 2 / 3 / 0

表 2

CB / FL_X / FL_A / FL_V
X / 0.2 / 0.3 / 0.5   ---> (sum up to 1)
Y / 0/45 / 0.55 / Null ---> (sum up to 1)

次に、この 2 つのテーブルを乗算して取得します。

表の結果:

CB / FL / A / B / C
X / X / 0 / 0 / 0
X / A / 2 / 1 / 0
X / V / 3 / 1 / 1
Y / X / 1 / 2 / 0
Y / A / 1 / 1 / 0

表 1 の数値を見るとわかるように、結果は整数です。そのため、「ラウンド」機能を使用する必要があります。また、テーブル結果の各 CB の合計は、テーブル 1 と同じである必要があります。たとえば、(CB(X, A) = FL_X(A)+FL_A(A)+FL_V(A) --> 5 (テーブル 1 から) = 0 + 2 + 3 (表の結果から). ご覧のとおり、FL_V(A) は 0.5*5=2.5 丸めれば 3. FL_A(A) に同じことをすると --> 0.3* 5=1.5~2. 3+2=5; したがって、FL_X(A) は 0.2*5=1 ですが、合計はテーブル 1 と等しくなければならないため、結果では 0 になります。これは、テーブル 2 を値で並べ替えることによって行われます。最初。

これは、私が持っているテーブルよりもはるかに小さいテーブルの例です。

このプロセスの sql クエリを書くのを手伝ってくれませんか?

4

1 に答える 1