sql - Oracle将多行数据转换成一行数据的问题,谢谢

查看:108
本文介绍了sql - Oracle将多行数据转换成一行数据的问题,谢谢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

ID 收费站 流量 日期 类型
1 收费站1号 20 6-20 进口
2 收费站1号 30 6-20 出口
3 收费站2号 40 6-20 进口
4 收费站2号 50 6-20 出口
5 收费站1号 20 6-21 进口
6 收费站1号 30 6-21 出口
7 收费站2号 40 6-21 进口
8 收费站2号 50 6-21 出口

要将上面的表数据显示成如下格式

ID 日期 收费站1号进口流量 收费站1号出口流量 收费站2号进口流量 收费站2号出口流量
1 6月20日 20 30 40 50
2 6月21日 20 30 40 50

谢谢

解决方案

这是个典型的行转列的问题

select rownum  as id, t.*
from (
    select 
      日期,
      sum(decode(收费站||类型, '收费站1号进口', 流量, 0)) as 收费站1号进口流量,
      sum(decode(收费站||类型, '收费站1号出口', 流量, 0)) as 收费站1号出口流量,
      sum(decode(收费站||类型, '收费站2号进口', 流量, 0)) as 收费站2号进口流量,
      sum(decode(收费站||类型, '收费站1号出口', 流量, 0)) as 收费站2号口流量
    from table_name
    group by 日期
) t

这篇关于sql - Oracle将多行数据转换成一行数据的问题,谢谢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆