使用diff将来自同一个表的两个SELECT语句组合在一起.条件

Ana*_*pta 4 sql

假设我们有一个Emp包含EmpId, Manager, Subb三列的表.

ManagerEmpId经理时为1 ,同样为subb.

需要表中的manager和subb的数量.

我们可以将这两个查询合并到一个SELECT查询中吗?(想要扫描一次表)

select count(*) as ManagerNumber from Emp where Manager=1
select count(*) as Subordinate  from Emp where Subb=1.
Run Code Online (Sandbox Code Playgroud)

Mah*_*mal 10

你可以这样做:

SELECT 
  SUM(CASE WHEN Manager = 1 THEN 1 ELSE 0 END) AS ManagerNumber, 
  SUM(CASE WHEN subb = 1 THEN 1 ELSE 0 END) AS Subordinate 
FROM Emp 
Run Code Online (Sandbox Code Playgroud)

它是SQL ANSI标准,它将适用于所有RDBMS.