ORACLE ROLLUP和CUBE函数
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY CUBE(A, B, C),则首先会对
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是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操作。 grouping_id()可以美化效果。
一、CUBE和ROLLUP
例子:
SELECT
返回结果:
MANAGER_ID
二、利用GROUPING美化数据结果
SELECT
返回结果:
为NULL的地方GROUPING()填充1。
三、GROUPING_ID()函数可以接受一列或多列,返回GROUPING位向量的十进制值
例子:
SELECT
返回结果:
利用GROUPING_ID()函数特性,过滤只有小计和合计的行数据:
SELECT
四、GROUP_ID()
先看不使用GROUP_ID()时的效果
SELECT
返回结果:DEPARTMENT_ID为NULL的记录不在下面集合里面,但是有多了几条重复数据(D=1)
SELECT
返回结果:
下一篇: 有关chr的文章推荐10篇
推荐阅读
-
Oracle LOWER() 和 UPPER()函数的使用方法
-
oracle中的greatest 函数和 least函数示例代码
-
SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
-
SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
-
Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示
-
oracle 存储过程和函数例子
-
给Oracle添加split和splitstr函数的方法
-
Oracle中 关于数据库存储过程和存储函数的使用
-
Oracle层次查询和with函数的使用示例
-
SQL中Charindex和Oracle中对应的函数Instr对比