SQL(DB2)在单个查询中返回多个条件计数

6 sql db2

我正在尝试将多个条件摘要选择到基于DB2的数据库上的单个表结果中.

例:

SELECT COUNT(FOO) FROM T1 WHERE T1.A=1 AS A_COUNT,
SELECT COUNT(FOO) FROM T1 WHERE T1.B=2 AS B_COUNT
Ext...
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

tek*_*ues 7

这将计算每个条件的发生:

select sum(case when t1.a = 1 then 1 else 0 end) as A_COUNT
     , sum(case when t1.b = 2 then 1 else 0 end) as B_COUNT
  from t1
 where t1.a = 1
    or t1.b = 2
Run Code Online (Sandbox Code Playgroud)


Noa*_*ter 6

select count(case when t1.a = 1 then foo else null end) as A_COUNT
     , count(case when t1.b = 2 then foo else null end) as B_COUNT
  from t1
 where t1.a = 1
    or t1.b = 2
Run Code Online (Sandbox Code Playgroud)

Where子句在严格意义上是可选的,但可以帮助表现.当else子句被省略时,"else null"也是隐含的,所以你也可以安全地将其关闭.