我有以下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