oracle中数据的行列转秩

简介:
有如下数据:
date           name     money
日期         姓名 金额
2008-1-12 sun 100
2008-1-12 张 100
2008-1-13 sun 100
2008-1-19 张 300
2008-2-12 sun 120
2008-2-19 张 300
2008-3-12 sun 130
得到的查询结果:
姓名 2008-01 2008-02 2008-03
sun   200 120 130
张  400 300 
请写出查询语句,提示:分组、求和。

--实现语句
select t.tname "姓名" ,     sum(decode(to_char(t.tdate, 'yyyy-mm'), '2008-01',t.tmoney,0))    "2008-01" 
,     sum(decode(to_char(t.tdate, 'yyyy-mm'), '2008-02',t.tmoney,0))    "2008-02" 
, sum(decode(to_char(t.tdate, 'yyyy-mm'), '2008-03',t.tmoney,0))    "2008-03" 
from colandrow t 
group  by t.tname
--下面是表结构
create  table colandrow 

tid varchar2(10), 
tdate date, 
tname varchar2(50), 
tmoney number(10,2) 


insert  into colandrow  values( '1',to_date( '2008-1-12', 'yyyy-mm-dd'), 'sun',100); 
insert  into colandrow  values( '2',to_date( '2008-1-12', 'yyyy-mm-dd'), '张', 100); 
insert  into colandrow  values( '3',to_date( '2008-1-13', 'yyyy-mm-dd'),  'sun', 100); 
insert  into colandrow  values( '4',to_date( '2008-1-19', 'yyyy-mm-dd'),  '张', 300); 
insert  into colandrow  values( '5',to_date( '2008-2-12', 'yyyy-mm-dd') , 'sun', 120); 
insert  into colandrow  values( '6',to_date( '2008-2-19', 'yyyy-mm-dd') , '张' ,300); 
insert  into colandrow  values( '7',to_date( '2008-3-12', 'yyyy-mm-dd') , 'sun', 130); 









本文转自 yuwenhu 51CTO博客,原文链接:http://blog.51cto.com/yuwenhu/159349,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
81 0
|
2月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的还原数据
Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。
【赵渝强老师】Oracle的还原数据
|
5月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
3月前
|
Oracle 关系型数据库 数据库
oracle数据创建同义词
oracle数据创建同义词
60 0
|
8月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
86 0
|
5月前
|
SQL Oracle 关系型数据库
Oracle误删数据怎么恢复?
Oracle误删数据怎么恢复?
63 0
|
5月前
|
SQL Oracle Java
实时计算 Flink版产品使用问题之采集Oracle数据时,为什么无法采集到其他TABLESPACE的表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多