[英]MySQL - get all column averages also with a 'total' average
我有一個MySQL表,看起來像這樣:
id load_transit load_standby
1 40 20
2 30 15
3 50 10
我需要做以下計算:
load_transit_mean = (40+30+50)/3 = 40
load_standby_mean = (20+15+10)/3 = 15
total_mean = (40+15)/2 = 27.5
是否可以在單個查詢中執行此操作? 最好的設計是什么?
我需要我的答案是可擴展的(真正的設計有更多的行和列),並能夠處理包含NULL的一些行。
我相信這樣做會:
SELECT AVG(Load_transit)
, AVG(load_standby)
, (AVG(Load_transit) + AVG(load_standby))/2.0
FROM table
AVG()
函數處理NULL,因為它忽略它們,如果你想在你的分母中計算NULL行,你可以用COUNT(*)
替換帶有SUM()
AVG()
COUNT(*)
,即:
SUM(load_transit)/COUNT(*)
關於可擴展性,如上所述手動列出它們可能是最簡單的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.