在MySQL查询中获得水平平均值的最有效方法是什么?

我有以下MySQL

Id  |  One  |  Two  |  Three
----------------------------
1   |  10   |  30   |  20
2   |  50   |  60   |  20
3   |  60   |  NULL |  40

编辑:当然,默认情况下表不需要为NULL,但我不希望它影响平均值(因此平均值计算为50而不是33,33).

我希望看起来像这样,使用MySQL查询:

Id | Average
------------
1  | 20
2  | 43,33
3  | 50

实现这一目标的最有效方法是什么?

解决方法:

select id, (ifnull(one,0) + ifnull(two,0) + ifnull(three,0))/
  ((one is not null) + (two is not null) + (three is not null)) as average from table
上一篇:是否有任何pythonic方法可以找到数组中特定元组元素的平均值?


下一篇:(Javascript)从用户获取三个整数以显示总和,平均值,乘积,最小和最大数字