oracle group by 行转列 分析执行计划
2012-11-23 09:09
441 查看
group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句 限制返回的结果集
类似于distinct的去重,可是不明白到底俩区别?功能上group by莫非多一下可以用having?
GROUP BY ROLLUP(A,B,C):首先对(A,B,C)进行GROUP BY,然后对(A,B)进行GROUP BY,然后是(A)进行GROUP BY, 最后对全表进行GROUP BY操作。
GROUP BY CUBE(A,B,C):首先对(A,B,C)进行GROUP BY,然后依次对(A,B)、(A,C)、(A)、(B,C)、(B)、(C)进行GROUP BY,最后对全表进行GROUP BY操作。
GROUP BY GROUPING SETS(A,B,C):依次对(C)、(B)、(A)进行GROUP BY。
----参见博客 http://blog.csdn.net/ayou2008/article/details/7183258 http://www.cnblogs.com/juddhu/archive/2012/03/07/2383685.html
Oracle 行转列问题
decode(待比较的对象,如果为这个,那麼结果为这个,否则结果是这个)
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’) command
关于pl/sql的分析执行计划,有话可以从耗时开始
对于耗时多,可是执行之间短的问题,如何取舍?
select t.*, t.rowid from TEST t;
select km,sum(decode(name,'张三',fs,0))张三
,sum(decode(name,'李四',fs,0))李四
,sum(decode(name,'王五',fs,0))王五
,sum(decode(name,'陈三',fs,0))陈三
from
(
select name,'SX' km,sx fs
from test
union all
select name ,'yw' km,yw fs
from test test1
)t
group by km
类似于distinct的去重,可是不明白到底俩区别?功能上group by莫非多一下可以用having?
GROUP BY ROLLUP(A,B,C):首先对(A,B,C)进行GROUP BY,然后对(A,B)进行GROUP BY,然后是(A)进行GROUP BY, 最后对全表进行GROUP BY操作。
GROUP BY CUBE(A,B,C):首先对(A,B,C)进行GROUP BY,然后依次对(A,B)、(A,C)、(A)、(B,C)、(B)、(C)进行GROUP BY,最后对全表进行GROUP BY操作。
GROUP BY GROUPING SETS(A,B,C):依次对(C)、(B)、(A)进行GROUP BY。
----参见博客 http://blog.csdn.net/ayou2008/article/details/7183258 http://www.cnblogs.com/juddhu/archive/2012/03/07/2383685.html
Oracle 行转列问题
decode(待比较的对象,如果为这个,那麼结果为这个,否则结果是这个)
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’) command
关于pl/sql的分析执行计划,有话可以从耗时开始
对于耗时多,可是执行之间短的问题,如何取舍?
select t.*, t.rowid from TEST t;
select km,sum(decode(name,'张三',fs,0))张三
,sum(decode(name,'李四',fs,0))李四
,sum(decode(name,'王五',fs,0))王五
,sum(decode(name,'陈三',fs,0))陈三
from
(
select name,'SX' km,sx fs
from test
union all
select name ,'yw' km,yw fs
from test test1
)t
group by km
相关文章推荐
- MongoDB干货系列2-MongoDB执行计划分析详解(3)
- oracle数据库执行计划统计分析,优化表数据字典,提高sql查询效率
- AutoTRACE是分析SQL的执行计划,执行效率的一个非常简单方便的工具
- MongoDB干货系列2-MongoDB执行计划分析详解(3)
- 通过分析SQL语句的执行计划优化SQL
- MySQL系列之五:explain执行计划分析
- 通过分析SQL语句的执行计划优化SQL(总结)
- SQL优化-同SQL不同执行计划-(CLOB详细分析1)
- 通过分析SQL语句的执行计划优化SQL(总结)
- 相同语句,时间段不一样,不同执行计划分析心得
- oralce执行计划分析优化
- 执行计划--常用的查询分析
- MySQL性能分析, mysql explain执行计划详解
- 续第二章:分析基本查询的图形执行计划--表连接
- SQL Server 第四堂课,创建存储过程。存储过程是一组编译在单个执行计划中的transact-SQL语句。存储过程相当于C#函数,可以允许模块化程序设计,允许更快执行如果某操作需要大量transct-SQL代码或需要重复执行,将在创建存储过程中对其进行分析和优化。
- 通过分析SQL语句的执行计划优化SQL
- 通过分析SQL语句的执行计划优化SQL
- MongoDB干货系列2-MongoDB执行计划分析详解(2)
- 通过分析SQL语句的执行计划优化SQL
- MongoDB干货系列2-MongoDB执行计划分析详解(2)