OVER 分析函数
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number(),ntile ,sum(),avg()等一起使用。
rank,dense_rank,row_number和 ntile之间的区别
1 1 1 1
2 2 2 1
2 2 3 2
4 3 4 2
5 4 5 3 四个分析函数都是按照col1分组内从1开始排序
row_number() 是没有重复值的排序(即使两天记录相等也是不重复的),可以利用它来实现分页
dense_rank() 是连续排序,两个第二名仍然跟着第三名
rank() 是跳跃拍学,两个第二名下来就是第四名
ntile (N)中的N,把记录强制分成多少段,事例中用的是ntile(3),记录现在分成3段了。
用法:
rank() over([partition by col1] order by col2)
dense_rank() over([partition by col1] order by col2)
row_number() over([partition by col1] order by col2)
ntile(n) over([partition by col1] order by col2)
其中partition by col1]可省略 order by不可省略
以上 四个为 分组排序 按照 partition by 的对象col1来分组 再按照 order by 的对象col2来排序
sum(col1) over() 按col1 汇总
sum(col1) over( order by col2) 连续求和 按col2 排序 连续求col1的和 (不支持 sql2005 和 2008 ,sql2012 和oracle 支持)
sum(col1) over( partition by col2 order by col3) 分组连续求和 按col2 分组后,按col3 排序 连续求col1的和 (不支持 sql2005 和 2008 ,sql2012 和oracle 支持)
sum(col1) over(partition by col2) 分组求和 按col2 分组 求每组col1的和
avg (col1) over() col1 平均数
avg (col1) over(partition by col2) 分组平均 按col2 分组 求col1平均数
SQL> select deptno,ename,sal,
2 sum(sal) over (order by ename) 连续求和,
3 sum(sal) over () 总和, -- 此处sum(sal) over () 等同于sum(sal)
4 100*round(sal/sum(sal) over (),4) "份额(%)"
5 from emp
6 / DEPTNO ENAME SAL 连续求和 总和 份额(%)
---------- ---------- ---------- ---------- ---------- ----------
20 ADAMS 1100 1100 29025 3.79
30 ALLEN 1600 2700 29025 5.51
30 BLAKE 2850 5550 29025 9.82
OVER 分析函数的更多相关文章
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- [转]oracle分析函数Rank, Dense_rank, row_number
oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number) 目录 ==================== ...
- [转]oracle 分析函数over
oracle 分析函数over 分析函数(OVER) 目录: =============================================== 1.Oracle分析函数简介 2. O ...
- Oracle 中的分析函数
Oracle常用分析函数介绍(排名函数+窗口函数) 2014年11月30日 ⁄ 数据库 ⁄ 共 3903字 ⁄ 暂无评论 ⁄ 阅读 7,772 次 评级函数 常见评级函数如下: RANK():返回数据 ...
- ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...
- Oracle分析函数(一)
一.总体介绍 分析函数如何工作 语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达式,…> <ORDER BY 表达式 < ...
- 【Oracle】oracle之listagg分析函数
oracle分析函数——listagg篇 (1)使用listagg将多行数据合并到一行 例表: select deptno, ename from emp order by deptno, ename ...
- oracle数据库函数之============‘’分析函数和聚合函数‘’
1分析函数 分析函数根据一组行来进行聚合计算,用于计算完成狙击的累积排名等,分析函数为每组记录返回多个行 rank_number() 查询结果按照次序排列,不存在并列和站位的情况,可以用于做Oracl ...
- oracle分析函数与over()(转)
文章参考:http://blog.csdn.net/haiross/article/details/15336313 -- Oracle分析函数入门-- 分析函数是什么? 分析函数是Oracle专门用 ...
- oracle的分析函数over 及开窗函数
转:http://www.2cto.com/database/201310/249722.html oracle的分析函数over 及开窗函数 一:分析函数over Oracle从8.1.6开 ...
随机推荐
- GetStoredProcCommand和GetSqlStringCommand的区别
原文:http://www.ithao123.cn/content-4004602.html http://hi.baidu.com/847270942/blog/item/c224dd557ff74 ...
- modelsim(3) - tips(zt)
1)如果需要跟踪信号,可以使用dataflow,直观,缺点是后仿太慢! http://www.cnblogs.com/asus119/archive/2011/04/01/2002525.html M ...
- Java 分页通用
1.定义分页模型:PageModel package com.common.page; import java.util.List; /** * 封装分页信息 * @author Administra ...
- react-组件生命周期
本文同步至微信公众号http://mp.weixin.qq.com/s?__biz=MzAxMzgwNDU3Mg==&mid=402267570&idx=1&sn=4b0dc2 ...
- http://bbs.ednchina.com/BLOG_345002072_2001308.HTM
http://bbs.ednchina.com/BLOG_345002072_2001308.HTM
- windows server 无人值守安装
使用 answer file:AutoUnattend.xml 来无人值守安装,到了选系统这步 还是要手动选择一个系统,这是为什么?怎么设置可以默认进入GUI的系统进行安装啊?
- [转]Android音频底层调试-基于tinyalsa
http://blog.csdn.net/kangear/article/details/38139669 [-] 编译tinyalsa配套工具 查看当前系统的声卡 tinymix查看混响器 使用ti ...
- eclipse maven spring mvc el表达式无效
http://www.myexception.cn/javascript/2031310.html
- 什么是遗传方差(Genetic variance)、加性遗传方差(Additive genetic variance)、显性遗传方差(Dominance genetic variance)、上位遗传方差(Epistatic genetic variance)
遗传方差:遗传方差又称表型方差(phenotypic variance),通常结合基因型方差(genotype variance)和环境方差(environmental variance).遗传方差主 ...
- oracle分页查询sql
select * from( select shopid,rownum rn from p_shopinfo where is_hot=1 and rownum <=6 order by sho ...