我有一个这样的数据库表:
id slot1 slot2 slot3
---------------------------------
1 10 10 0
2 0 0 10
3 0 10 0
我需要一个SQL语句来查明整个表中有多少个'10'实例。所以对于上面,它给了我4作为答案。我不确定我能用什么方法......
是否有合理的方法,或者我必须提取所有记录WHERE slot1=10 OR slot2=10 OR slot3=10
并在之后计算它们?
答案 0 :(得分:2)
使用条件聚合的一种方法。
ibm-ejb-jar-bnd.xml
使用MySQL,条件可以简化为
select count(case when slot1=10 then 1 end) +
count(case when slot2=10 then 1 end) +
count(case when slot3=10 then 1 end)
from tbl
where 10 in (slot1,slot2,slot3)
每个条件都会返回1或0,具体取决于真实性。