标题说是高级篇,其实也就是相对于基础篇来说的,也不是很深奥,自己平时工作中也都会用到,这里回忆的并不是特别冷门的知识,不要掉以轻心,以为“高级”就觉得工作中不会用到了。

一、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高级篇的更多相关文章

  1. ORM查询语言(OQL)简介--高级篇(续):庐山真貌

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...

  2. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  3. 【.net深呼吸】动态类型(高级篇)

    前面老周给大家介绍了动态类型使用的娱乐级别用法,其实,在很多情景下,娱乐级别的用法已经满足需求了. 如果,你想自己来控制动态类型的行为和数据的存取,那么,就可以考虑用今天所说的高大上技术了.比如,你希 ...

  4. 【转载】Spark性能优化指南——高级篇

    前言 数据倾斜调优 调优概述 数据倾斜发生时的现象 数据倾斜发生的原理 如何定位导致数据倾斜的代码 查看导致数据倾斜的key的数据分布情况 数据倾斜的解决方案 解决方案一:使用Hive ETL预处理数 ...

  5. ORM查询语言(OQL)简介--高级篇:脱胎换骨

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...

  6. 25个增强iOS应用程序性能的提示和技巧(高级篇)(2)

    25个增强iOS应用程序性能的提示和技巧(高级篇)(2) 2013-04-16 14:56 破船之家 beyondvincent 字号:T | T 在开发iOS应用程序时,让程序具有良好的性能是非常关 ...

  7. 25个增强iOS应用程序性能的提示和技巧(高级篇)(1)

    25个增强iOS应用程序性能的提示和技巧(高级篇)(1) 2013-04-16 14:56 破船之家 beyondvincent 字号:T | T 在开发iOS应用程序时,让程序具有良好的性能是非常关 ...

  8. 【转】【技术博客】Spark性能优化指南——高级篇

    http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...

  9. Python3学习(3)-高级篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 文件读写 源文件test.txt line1 line2 line3 读取文件内容 f = ope ...

随机推荐

  1. jQuery validator 增加多个模板

    今天学了jquery validator 可以增加多个模板,而不用写长长的js代码.废话少说,直接上例子 这段是要添加的模板 上面是把模板部分是要重复增加多个的部分,需独立出来,用textarea标签 ...

  2. Makefiles in Linux

    http://www.codeproject.com/Articles/31488/Makefiles-in-Linux-An-Overview

  3. update-alternatives命令详解

    转载:http://blog.csdn.net/maixia24/article/details/11707289 update-alternatives是ubuntu系统中专门维护系统命令链接符的工 ...

  4. [Selenium]Grid模式下运行时打印出当前Case在哪台node机器上运行

    当Case在本地运行成功,在Grid模式下运行失败时,我们需要在Grid模式下进行调试,同时登录远程的node去查看运行的情况. Hub是随机将case分配到某台node上运行的,怎样知道当前的cas ...

  5. 使用tengine解决负载均衡的session问题

    事情的经过时这样的~~,我看了好多好多百度中nginx负载均衡中解决session问题的方式,我选择了研究url_hash的方式.经过一番配置之后,我越发觉得这百度搜出来的帖子也太过久远了吧,去htt ...

  6. 15 Independent Alleles

    Problem Figure 2. The probability of each outcome for the sum of the values on two rolled dice (blac ...

  7. PHP(六)PHP和HTML混合的一种形式

  8. 三种调用WCF服务的代码

    wsHttpBinding,Massage UserName认证 static void Main(string[] args) { //使用服务引用方式生成的Client调用服务,使用自动生成的配置 ...

  9. Oracle E-Business Suite R12.1.x Installation And Upgrade Guide Step by Step

    1.        Install Oracle E- Business Suite R12.1.1       2.        Upgrade E- Business Suite From 12 ...

  10. XML--使用XML来将字符串分隔成行数据

    DECLARE @xml XML SET @xml=CAST(REPLACE('<ROOT><X>'+'AA,AB,AC,AD'+'</X></ROOT> ...