+ -
当前位置:首页 → 问答吧 → 求解关于统计的SQL语句

求解关于统计的SQL语句

时间:2011-11-29

来源:互联网

求教各位一条关于统计的SQL,不能用子查询
表数据如下:
ID, 域名,位置
1,"www.aia.com","湖南" 
2,"www.abc.cn","湖南" 
3,"www.xxx.com","北京" 
4,"www.yyy.com","北京" 
5,"www.zzz.cn","北京" 
6,"www.iiii.cn","北京"  

求各个位置下的.cn 域名和.com 域名的个数:
期望结果:
位置, COM个数, CN个数
湖南 1 1
北京 2 2

先谢谢各位了

作者: yuyujulin   发布时间: 2011-11-29

SQL code
select 位置,
       sum(case when instr(域名,'.com') > 0 then 1 else 0 end) "com个数",
       sum(case when instr(域名,'.cn') > 0 then 1 else 0 end) "cn个数"
from tb
group by 位置

作者: dawugui   发布时间: 2011-11-30

SQL code
with t as
(
select 1 id ,'www.aia.com' domain ,'湖南' pos from dual union all
select 2 id ,'www.abc.cn'  domain ,'湖南' pos from dual union all  
select 3 id ,'www.xxx.com' domain ,'北京' pos from dual union all
select 4 id ,'www.yyy.com' domain ,'北京' pos from dual union all  
select 5 id ,'www.zzz.cn'  domain ,'北京' pos from dual union all  
select 6 id ,'www.iiii.cn' domain ,'北京' pos from dual  
)
select pos 位置,
       sum(case when instr(domain,'.com') > 0 then 1 else 0 end) "com个数",
       sum(case when instr(domain,'.cn') > 0 then 1 else 0 end) "cn个数"
from t
group by pos

/*
位置    com个数     cn个数
---- ---------- ----------
北京          2          2
湖南          1          1

2 rows selected.
*/

作者: dawugui   发布时间: 2011-11-30