如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目

如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目

问题描述:

如何用SQL语句查询Table表中的ID1中的O1,O2,O3为1 的数目
Table
ID O1 O2 O3
ID1 1 1 0
ID2 1 0 1
ID3 0 1 1

 select COUNT(*), (select COUNT(*) FROM a where O1='1') AS COUNTO1,(SELECT COUNT(*) FROM A WHERE O2="1") AS COUNTO2 ,(SELECT COUNT(*) FROM A WHERE O3="1") AS COUNT03 FROM A

select count(*) from table where O1='1';难道不是这个?

select COUNT(*), (select COUNT(*) FROM a where O1='1') AS COUNTO1,(SELECT COUNT(*) FROM A WHERE O2="1") AS COUNTO2 ,(SELECT COUNT(*) FROM A WHERE O3="1") AS COUNT03 FROM A

来个不一样的:

  select count(case when O1 = '1' then 1 end) count01,
        count(case when O2 = '1' then 1 end) count02,
        count(case when O3 = '1' then 1 end) count03        
 from A