簡體   English   中英

MySQL - 獲得所有列平均值也具有“總”平均值

[英]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.

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