SQL 合并两个 select 查询的结果集并转置计数

SQL merge result set from two select queries and transpose counting

我正在尝试使用特定模板从数据库中提取数据。

在我的数据库中有以下数据:

 System | Type | Number
   A      TypeA   1
   A      TypeB   1
   A      TypeA   1
   B      TypeA   1

我想要这样的东西:

System | #TypeA | #TypeB
   A       2       1
   B       1       0

是否可以只查询一次?

我尝试在两次查询之间执行 full outer join 但没有成功。我很想知道性能方面的最佳解决方案。

提前致谢!

您可以使用条件案例表达式

通过聚合来完成此操作
select system,
  Sum(case when type='TypeA' then 1 else 0 end) "#TypeA",
  Sum(case when type='Typeb' then 1 else 0 end) "#TypeB"
from t
group by system;