现在我有个表 table1 ,
记录一个月内,每个号码拨打的长途类型地域类型有3中,国际,国内,省内
号码 地域
132 国际
123 国际
123 省内
123 国内
132 国内
132 国际
145 国际
145 国内
123 国际
132 省内
145 省内
145 省内
123 国际我现在需要建立这样的一张统计表格号码 国际拨打次数 国内拨打次数 省内拨达次数这样一个号码就只会对应一条记录了。
可能的数据就是 号码 国际拨打次数 国内拨打次数 省内拨达次数
124 13 12 33
有人告诉我用select case when 可以实现,但是我还是不熟悉它的用法,哪位能指点一下啊
记录一个月内,每个号码拨打的长途类型地域类型有3中,国际,国内,省内
号码 地域
132 国际
123 国际
123 省内
123 国内
132 国内
132 国际
145 国际
145 国内
123 国际
132 省内
145 省内
145 省内
123 国际我现在需要建立这样的一张统计表格号码 国际拨打次数 国内拨打次数 省内拨达次数这样一个号码就只会对应一条记录了。
可能的数据就是 号码 国际拨打次数 国内拨打次数 省内拨达次数
124 13 12 33
有人告诉我用select case when 可以实现,但是我还是不熟悉它的用法,哪位能指点一下啊
---------- --------------------
132 国际
123 国际
123 省内
123 国内
132 国内
132 国际
145 国际
145 国内
123 国际
132 省内
145 省内
145 省内
123 国际已选择13行。OPER@tl> select num,sum(decode(area,'国际',1,0)) "国际拨打次",
2 sum(decode(area,'国内',1,0)) "国内拨打次",
3 sum(decode(area,'省内',1,0)) "省内拨打次"
4 from test
5 group by num; NUM 国际拨打次 国内拨打次 省内拨打次
---------- ---------- ---------- ----------
123 3 1 1
132 2 1 1
145 1 1 2
SUM(CASE 地域 when '国际' 1 else 0 end) 国际拔打次数,
SUM(CASE 地域 when '国内' 1 else 0 end) 国内拔打次数,
SUM(CASE 地域 when '省内' 1 else 0 end) 省内拔打次数
FROM table1
GROUP BY num;
SUM(CASE when 地域='国际' 1 else 0 end) 国际拔打次数,
SUM(CASE when 地域='国内' 1 else 0 end) 国内拔打次数,
SUM(CASE when 地域='省内' 1 else 0 end) 省内拔打次数
FROM table1
GROUP BY num;