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/7183258http://www.cnblogs.com/juddhu/archive/2012/03/07/2383685.htmlOracle 行转列问题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 allselect name ,'yw' km,yw fsfrom test test1)tgroup by km