簡體   English   中英

MySQL - 單個查詢中的兩個相關加權平均值

[英]MySQL - two dependent weighted averages in a single query

這個問題延伸了前一個問題 我想在一些加權平均值之外添加加權平均總數。

我有一個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

是否可以在單個查詢中執行此操作? 最好的設計是什么?

通過擴展我對前一個問題的回答,這很簡單:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM