-- FUNCTION_NAME(<argument>,<argument>...)
-- OVER
-- (<Partition-Clause><Order-by-Clause><Windowing Clause>)
partition : 按照表达式分区(就是分组),如果省略了分区子句,则全部的结果集被看作是一个单一的组
order by : 计算中所使用的行的集合是当前分区中当前行和前面所有行,没有ORDERBY时,默认的窗口是全部的分区
例:
sum(sal) over (partition by deptno order by ename) new_alias-- 开窗(windowing)函数
sum(t.sal) over (order by t.deptno,t.ename) running_total,
sum(t.sal) over (partition by t.deptno order by t.ename) department_total-- 制表(reporting)函数
-- 与开窗函数同名,作用于一个分区或一组上的所有列,
-- 与开窗函数的关键不同之处在于OVER语句上缺少一个ORDER BY子句!
sum(t.sal) over () running_total2,
sum(t.sal) over (partition by t.deptno ) department_total2-- RANGE窗口仅对NUMBERS和DATES起作用,ORDER BY中只能有一列
avg(t.sal) over(order by t.hiredate asc range 100 preceding) -- 统计前100天平均工资-- Specifying窗口
range between 100 preceding and 100 following; --当前行100前,当前后100后-- 按区域查找上一年度订单总额占区域订单总额20%以上的客户 table : orders_tmp
-- 1.找出2001年度区域订单总额
select o.cust_nbr customer,o.region_id region,sum(o.tot_sales) cust_sales,
sum(sum(o.tot_sales)) over(partition by o.region_id) region_sales
from orders_tmp o where o.year = 2001 group by o.region_id, o.cust_nbr;-- 2.在1的基础上得出订单总额占区域订单总额20%以上的客户
select * from
(select o.cust_nbr customer, o.region_id region,sum(o.tot_sales) cust_sales,sum(sum(o.tot_sales)) over(partition by o.region_id) region_salesfrom orders_tmp o where o.year = 2001group by o.region_id, o.cust_nbr) all_sales
where all_sales.cust_sales > all_sales.region_sales * 0.2;-- 加上百分比 round()
select cust_nbr, region_id, cust_sales, region_sales,  -- 此处可以用tmptb.* , 但不能用 *
100 * round(cust_sales / region_sales, 2) || '%' Percent from
(select cust_nbr, region_id,
sum(TOT_SALES) cust_sales,
sum(sum(tot_sales)) over(partition by REGION_ID) as region_sales
from orders_tmp where o.year = 2001 group by CUST_NBR, REGION_ID
order by REGION_ID) tmptb
where cust_sales > region_sales * 0.2;

转载于:https://www.cnblogs.com/c0liu/p/5469006.html

oracle 分析函数1相关推荐

  1. Oracle分析函数五——统计分析函数

    Oracle 分析函数--统计分析函数 方差和标准差:     样本中各数据与样本平均数的差的平方和的平均数叫做样本方差:样本方差的算术平方根叫做样本标准差.样本方差和样本标准差都是衡量一个样本波动大 ...

  2. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  3. 【分析函数】Oracle分析函数之LAG和LEAD

    [分析函数]Oracle分析函数之LAG和LEAD Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的 ...

  4. oracle 数据分析函数,ORACLE分析函数(一)

    ORACLE分析函数(1) 分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和 ...

  5. Oracle分析函数巧妙使用

    在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...

  6. Oracle 分析函数--Row_Number()

    row_number() over ([partition by col1] order by col2) ) as 别名 表示根据col1分组,在分组内部根据 col2排序 而这个"别名& ...

  7. Oracle分析函数——函数列表

    --------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...

  8. Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT

    Oracle 分析函数--SUM,AVG,MIN,MAX,COUNT SUM 功能描述:该函数计算组中表达式的累积和. SAMPLE :下例计算同一经理下员工的薪水累积值 MIN 功能描述:在一个组中 ...

  9. oracle 分析函数、GROUPING函数

    分析函数 over(Partition by...) 一个超级牛皮的ORACLE特有函数.天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊!oracle的分析函数o ...

  10. Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内的数据 ...

最新文章

  1. jboss4 迁移_应用程序服务器迁移:从JBoss EE5到Wildfly EE7
  2. 重新绘制TabControl的Tabpage标签,添加图片及关闭按钮
  3. macos server 恢复安装_如何通过 macOS 恢复功能重新安装 macOS
  4. vue 组件 props配置
  5. 2017.8.26 力 思考记录
  6. 在Linux下使用linuxdeployqt发布Qt程序
  7. 安装 SQL Server Compact Edition 及 与PC 数据同步的部署
  8. 三大器之------生成器
  9. 二维数组求最大子数组和
  10. 自动按键 回车 变成_【按键大扫荡】驾驶员的“眼”
  11. kmeans算法及python实现
  12. 用HTML写出能转换成合适的PDF文件(A4纸张大小)的相关问题和方法
  13. 博客园博客使用无觅插件
  14. php人民币转换,PHP转换,如何实现人民币中文大写与数字相互转换?
  15. 深入理解tensorflow架构设计与实现原理(彭靖田著)
  16. 几个学习Python的网站推荐
  17. 从零到一实现复杂表格需求(antd table 合并行 合并列)
  18. 微医网爬虫(一) java实现
  19. Scrum开发管理方法的由来、团队建设与实施过程
  20. 独立成分分析ICA/FastICA

热门文章

  1. 用到lucene的爬虫的简单实现
  2. [转载] New Concept English 1——Lesson 14 What colour's your…?
  3. 远程控制 vc++实现
  4. 读书印记 - 《清醒:如何用价值观创造价值》
  5. HNOI2015题解
  6. 概念的图解 —— 数学
  7. apple个人开发者证书无线发布app的实现(转)
  8. Android开发中完全退出程序的三种方法
  9. [Codeforces Round #162 (Div. 2)]A. Colorful Stones (Simplified Edition)
  10. 银铃响过:那些清爽的女声