计算表中非空或非零列的数量

时间:2011-04-27 01:06:34

标签: mysql

我有一张这样的表

ID   Name   Score_1   Score_2   Score_3
1    Abcd   4         5         5
2    Bdc    8         7         0
3    dcd    0         0         3
4    cdded  0         0         0

我最后需要另一列可以计算非零列的数量。结果应该是这样的

ID   Name   Score_1   Score_2   Score_3 Count
1    Abcd   4         5         5        3
2    Bdc    8         7         0        2  
3    dcd    0         0         3        1 
4    cdded  0         0         0        0

谢谢

1 个答案:

答案 0 :(得分:8)

select *, 
if(score_1<>0,1,0)+if(score_2<>0,1,0)+if(score_3<>0,1,0) as `count` 
from table

在需要时使用这样的选择,而不是存储计算字段。