+-

我有一个 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(),即:
SUM(load_transit)/COUNT(*)
关于可扩展性,如上所述手动列出它们可能是最简单的解决方案.
点击查看更多相关文章
转载注明原文:MySQL – 获得所有列平均值也具有“总”平均值 - 乐贴网