0

この質問は、前の質問を拡張したものです。個々の加重平均に加えて、加重平均合計を追加したいと考えています。

次のようなMySQLテーブルがあります。

id  load_transit    load_standby    hours_transit   hours_standby
1   40              20              8               4
2   30              15              10              10
3   50              10              3               9

次の計算を行う必要があります。

(中間計算)

hours_transit_total = 8+10+3 = 21
hours_standby_total = 4+10+9 = 23
hours_total = 21+23 = 44

(新しい余分な望ましい結果)

load_transit_weighted_mean = 40*(8/21) + 30*(10/21) + 50*(3/21) = 36.667
load_standby_weighted_mean = 20*(4/23) + 15*(10/23) + 10*(9/23) = 13.913
load_total_weighted_mean = 36.667*(21/44)+13.913*(23/44) = 24.772

単一のクエリでこれを行うことは可能ですか? ベストなデザインは何でしょう?

4

1 に答える 1

2

以前の質問に対する私の回答を拡張すると、これは同じくらい簡単です。

SELECT sum(hours_transit * load_transit) / sum(hours_transit),
       sum(hours_standby * load_standby) / sum(hours_standby),
       (sum(hours_transit * load_transit + hours_standby * load_standby)) / sum(hours_transit + hours_standby)
FROM table1

対応する sqlfiddleは次のとおりです。

于 2013-06-26T13:28:28.340 に答える