如何将这样的横表转为纵表(长表)

etl2007 2009-02-26 03:01:30
现在我有个表 table1 ,
记录一个月内,每个号码拨打的长途地

call_num area
号码 地域
132 深圳
123 北京
123 北京
123 北京
132 深圳
132 上海
145 上海
145 上海
123 广州
132 广州
145 广州
145 深圳
123 广州
132 北京
123 深圳
123 深圳
123 北京
132 北京
132 上海
145 苏州
145 苏州
123 广州
132 苏州
145 苏州
145 苏州
123 广州

但是我现在需要统计构建这样一个结果表

call_num long_addr_1 long_addr_2 long_addr3
号码 长途地1 长途地2 长途地3

即把当月每个号码拨打次数最多那3个长途地给列出来,并且形成上面的表格
该如何构建呢

例如对于号码123 ,当月的数据就可能是
call_num long_addr_1 long_addr_2 long_addr3
号码 长途地1 长途地2 长途地3
----------------------------------------------
123 北京 深圳 广州

...全文
122 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy__Huang 2009-02-26
  • 打赏
  • 举报
回复
oracle 10g

select call_num,replace(wmsys.wm_concat(area),',',' ') long_addr
from tb
group by call_num;

你看这样是否符合你的要求?

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧