39.oracle高级篇
标题说是高级篇,其实也就是相对于基础篇来说的,也不是很深奥,自己平时工作中也都会用到,这里回忆的并不是特别冷门的知识,不要掉以轻心,以为“高级”就觉得工作中不会用到了。
一、select into 和 insert into select 两种表复制语句
create table <new table> as select * from <exists table>,要求目标表不存在。
insert into table2(f1,f2,...) select v1,v2,.... from table1。要求目标表table2必须存在,由于目标表已经存在,所以除了插入源表table1的字段外,还可以插入常量。
二、merge into
merge into table1
using table2
on table1和table2进行关联
when matched then
update set...
when not matched then
insert(....)values....
例如:
merge into products p using (select * from newproducts) np on (p.product_id = np.product_id)
when matched then
update set p.product_name = np.product_name where np.product_name
like 'OL%'
when not matched then
insert values(np.product_id, np.product_name, np.category) where
np.product_name like 'OL%'
三、分层查询(查出一颗树)
select * from emp
start with empno=7369
connect by prior mgr=empno
pid在前表示向上(根)查询,pid在后表示向下查询
四、分析函数(统计用)
4.1 voer
select empno,ename,job,sal,
(sum(sal) over(order by empno)) orderSum ,--连续求和
sum(sal) over() total,--总和
100*round(sal/sum(sal) over(),5) perc --份额
from emp
from emp
4.2 partition 部门连续求和
select empno,ename,deptno,sal,
sum(sal) over(partition by deptno order by empno ) dept_Order_Sum,--部门连续求和
sum(sal) over(partition by deptno) dept_Sum--部门求和
from emp
4.3 组内排名
select empno,deptno,sal,
row_number() over(partition by deptno order by sal desc) as "order"
from emp
4.4 rollup 在group by 的基础上再次分组(月份的小计)
select
to_char(hiredate,'YY') HIREDATE,JOB,SUM(SAL) "SUM"
from emp group by ROLLUP(to_char(hiredate,'YY'),JOB)
4.5 cube函数(一直不太理解。。。)
两次分组,比如先按照月份分组,再按照区域分组,统计出工资多少。
4.6 rank函数和dense_rank函数
应用场景:排名
select
to_char(emp.hiredate,'YY') "year",
job,
emp.sal,
rank() over(partition by to_char(emp.hiredate,'YY'),job order by sal desc) "order"
from emp
假设 81年组 的 salesman 组 后面最后还有一行的sal为1240,那么排名应该是4,也就是1240这一行前面实际上是已经有4行了,但1240还是还在了第四。如果希望这一排名是5的话,那么应该用dense_rank。
4.7 row_number()函数
select
to_char(emp.hiredate,'YY') "year",
job,
emp.sal,
row_number() over(partition by to_char(emp.hiredate,'YY'),job order by sal desc) "order"
from emp
39.oracle高级篇的更多相关文章
- ORM查询语言(OQL)简介--高级篇(续):庐山真貌
相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...
- C#高级知识点&(ABP框架理论学习高级篇)——白金版
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...
- 【.net深呼吸】动态类型(高级篇)
前面老周给大家介绍了动态类型使用的娱乐级别用法,其实,在很多情景下,娱乐级别的用法已经满足需求了. 如果,你想自己来控制动态类型的行为和数据的存取,那么,就可以考虑用今天所说的高大上技术了.比如,你希 ...
- 【转载】Spark性能优化指南——高级篇
前言 数据倾斜调优 调优概述 数据倾斜发生时的现象 数据倾斜发生的原理 如何定位导致数据倾斜的代码 查看导致数据倾斜的key的数据分布情况 数据倾斜的解决方案 解决方案一:使用Hive ETL预处理数 ...
- ORM查询语言(OQL)简介--高级篇:脱胎换骨
相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...
- 25个增强iOS应用程序性能的提示和技巧(高级篇)(2)
25个增强iOS应用程序性能的提示和技巧(高级篇)(2) 2013-04-16 14:56 破船之家 beyondvincent 字号:T | T 在开发iOS应用程序时,让程序具有良好的性能是非常关 ...
- 25个增强iOS应用程序性能的提示和技巧(高级篇)(1)
25个增强iOS应用程序性能的提示和技巧(高级篇)(1) 2013-04-16 14:56 破船之家 beyondvincent 字号:T | T 在开发iOS应用程序时,让程序具有良好的性能是非常关 ...
- 【转】【技术博客】Spark性能优化指南——高级篇
http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...
- Python3学习(3)-高级篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 文件读写 源文件test.txt line1 line2 line3 读取文件内容 f = ope ...
随机推荐
- 把二叉搜索树转化成更大的树 · Convert BST to Greater Tree
[抄题]: 给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值的节点值之和(包括该节点). Given a binary search Tree ...
- Solidity根据精度来表示浮点数
https://stackoverflow.com/questions/42738640/division-in-ethereum-solidity/42739843 pragma solidity ...
- vbs执行系统命令
首先说明一下,我的所有代码都是vbscript,jscript我没有研究过,不过我想也差不多. 关于最基础的语法比如变量的申明,分支,循环,函数的调用,等等这些我就不讲了,不懂得自己看一下. 1.我们 ...
- JavaScript事件 DOMNodeInserted DOMNodeRemoved
JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定交互的瞬间.可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码. 13.1 事件流 ...
- code1001 舒适的路线
n次最小生成树kruskal 将所有的边排序,权值小的在前. 设排序后第i条边为路径中的最长边,那么这条路径一定是由1~i中的一些边组成 因为最高速和最低速的差尽量小,最高速确定了,最低速应尽量大. ...
- android4.2 高用zing拍照后,返回其它页面操作时,主线程关掉或程序退出的问题解决
产生错误的代码: @Override protected void onCreate(Bundle savedInstanceState) { StrictMode.setThreadPolicy(n ...
- Mac完整卸载Android Studio的方法
1.卸载Android Studio,在终端(terminal)执行以下命令: rm -Rf /Applications/Android\ Studio.app rm -Rf ~/Library/Pr ...
- windows7文件夹怎样默认图片大图显示?
先打开一个含有图片的文件夹,在文件夹空白处右键选择属性,打开自定义选项卡. 确定自定义选项卡 显示的是:“优化此文件夹:图片”. 然后,选择:组织--文件夹和搜索选项--查看--文件夹视图,应用到文件 ...
- XXX 不是当前用户的有效责任,请联系您的系统管理员
EBS中,有时进入一些基于OA Framework 的Web页面时,会出现这种现象: XXX 不是当前用户的有效责任,请联系您的系统管理员 ( or: xxx is not a valid resp ...
- TSQL--逻辑查询处理
1. 查询处理可分成逻辑处理和物理处理,逻辑处理上各阶段有特定的顺序,但为优化查询,在保证结果集正确的条件下,物理处理顺序并不按照逻辑处理顺序执行,如果在INNER JOIN时,WHERE语句中的过滤 ...