[oracle]在单个语句中获得多个聚合

标签: Oracle
发布时间: 2017/4/15 19:00:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

表中有数据的城市和其分支/自动取款机

CITY        TYPE       NAME
 ----------------------------------
 agra         atm         X
 agra         branch      X1 
 delhi        atm         X2
 agra         atm         X3
 agra         atm         X4
 delhi        branch      X5
 chennai      branch      X6

设置期望的结果是

CITY     ATM   BRANCH
------------------------------------
agra       3       1 
delhi      1       1
chennai    0       1

我们是否能做这一个 select 语句中。

解决方法 1:

你可以用条件求和聚合中︰

select t.city,
       sum(case when type = 'atm' then 1 else 0 end) as ATM,
       sum(case when type = 'branch' then 1 else 0 end) as branch
from t
group by t.city
赞助商