ORACLE ROLLUP和CUBE的使用
ROLLUP,是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。
CUBE,也是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。
在文章的最后附上了相关表和记录创建的脚本。
1、向ROLLUP传递一列
SQL> select division_id,sum(salary)
2 from employees2
3 group by rollup(division_id)
4 order by division_id;
DIV SUM(SALARY)
--- -----------
BUS 1610000
OPE 1320000
SAL 4936000
SUP 1015000
8881000
SQL>
再来看一下如果使用普通的GROUP BY,而没有ROLLUP是个什么情况
SQL> select division_id,sum(salary)
2 from employees2
3 group by division_id
4 order by division_id;
DIV SUM(SALARY)
--- -----------
BUS 1610000
OPE 1320000
SAL 4936000
SUP 1015000
可以看到,缺少了最后的统计信息。
2、向ROLLUP传递多列
SQL> select division_id,job_id,sum(salary)
2 from employees2
3 group by rollup(division_id,job_id)
4 order by division_id,job_id;
DIV JOB SUM(SALARY)
--- --- -----------
BUS MGR 530000
BUS PRE 800000
BUS WOR 280000
BUS 1610000
OPE ENG 245000
OPE MGR 805000
OPE WOR 270000
OPE 1320000
SAL MGR 4446000
SAL WOR 490000
SAL 4936000
DIV JOB SUM(SALARY)
--- --- -----------
SUP MGR 465000
SUP TEC 115000
SUP WOR
相关文档:
在数据库未启动之前登陆从而启动数据库如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.使用Rman,很多时候需要在nomount,mount等状态对数据库进行处理。所以通常要求sysdba权限如果属于本地DBA组,可以通过操作系统认证登陆如果是远程sysdba登陆,需要通过passwordfile认证。
1.remote_login_passwordfile ......
介绍一下内联、左联、右联
一.先看一些最简单的例子
例子
Table A
aid adate
1 a1
2 a2
3 a3
TableB
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * ......
1.备份scott
(1)在C盘的根目录下创建一个文件夹temp
(2)在cmd在进入文件夹,del *.* ,删除所有文件。
(3)输入exp
(4)输入用户名和密码:scott/tiger
(5)就会显示“输入数组提取缓冲区大小”,在这一步直接回车就行了
(6)显示“导出文件:DXPDAT.DMP>”,这一步也是回车
( ......