--=============================================
-- SQL 基础--> ROLLUP与CUBE运算符实现数据汇总
--=============================================
在使用ROLLUP与CUBE运算符实现数据的汇总是,Oracle与SQL Server使用了不同的写法,但其实质是一样的,都遵循了SQL规范。
ROLLUP与CUBE运算符都是对GROUP BY 子句的扩展
SQL Server中的用法
GROUP BY col1,col2
WITH ROLLUP | CUBE ;
Oracle 中的用法
GROUP BY
ROLLUP | CUBE (col1,col2);
ROLLUP:为每个分组返回小计记录以及为所有分组返回总计记录
CUBE:返回列中所有组合的小计记录以及为所有分组返回总计记录
关于在SQL Sever中ROLLUP与CUBE运算符,请参照:ROLLUP 与CUBE 运算符的使用
一、演示ROLLUP 及CUBE 的使用
--使用常规的GROUP BY 实现数据的汇总
SQL> SELECT deptno,SUM(sal) FROM emp WHERE deptno IS NOT NULL
2 GROUP BY deptno;
DEPTNO SUM(SAL)
---------- ----------