日期:2014-05-20  浏览次数:20780 次

求一SQL count(*)问题。
有一张表:TABL_CITY
字段
ID         CITY_NAME       SERVER_ID
1           北京                 1001
2           北京                 1002
3           上海                 1003
4           上海                 1002
(注:
SERVER_ID   1001=下载;
SERVER_ID   1002=直播;
SERVER_ID   1003=点播)
我现在要求查询结果变成

ID         CITY_NAME     下载     直播   点播     总数
1           北京                 1           1       0             2
2           上海                 0           1       1             2

这个SQL语句该怎么写啊。


------解决方案--------------------
select id,
city_name,
count(server_id = 1001) as 下载,
count(server_id = 1002) as 直播,
count(server_id = 1003) as 点播,
count(server_id = 1003) +count(server_id = 1002) + count(server_id = 1003) as 点播,
from TABL_CITY
group by id, city_name
------解决方案--------------------
count(when server_id = 1001 then 1 else 0) as 下载
其他以此类推