ORACLE分析函数小结
来源:互联网 发布:java怎么记录浏览次数 编辑:程序博客网 时间:2024/06/07 00:51
rank, dense_rand, row_number
这三个分析函数为每个生成一个1至n的自然数,这三个函数的唯一区别在于当碰到相同数据时的排名策略
row_number
返回一个唯一的值,当碰到相同数据时,排名按照记录集中的顺序依次递增
dense_rand
返回一个唯一的值,除非碰到相同数据时,此时所有数据的排名是一样的
rank
遇到相同数据时,相同数据的排名是一样的,同时会在最后一条记录和下一条不同记录的排名之间空出排名
rows between unbounded preceding and unbounded following
ntil(5) over()
SELECT MIN(REGION_ID) KEEP(DENSE_RANK FIRST ORDER BY SUM(CUSTOMER_SALES)DESC)FIRST,
MIN(REGION_ID) KEEP(DENSE_RANK LAST ORDER BY SUM(CUSTOMER_SALES) DESC) LAST
FROM USER_ORDER
GROUP BY REGION_ID
LAG(SUM(TOT_SALES),1) OVER(ORDER BY MONTH)
统计方面
SUM(...)OVER(PARTITION BY ORDER BY)
SUM(...)OVER(PARTITION BY ORDER BY ROWS BETWEEN ... PRECEDING AND ... FOLLOWING)
SUM(...)OVER(PARTITION BY ORDER BY ROWS BETWEEN ... PRECEDING AND ... CURRENT ROW)
SUM(...)OVER(PARTITION BY ORDER BY RANGE BETWEEN INTERVAL '...' 'DAY' PRECEDING AND INTERVAL '...' 'DAY' FOLLOWING)
排序方面
RANK()OVER(PARTITION BY ORDER BY NULLS LAST/FIRST)
DENSE_RANK()OVER(PARTITION BY ORDER BY NULLS LAST/FIRST)
ROW_NUMBER()OVER(PARTITION BY ORDER BY NULLS LAST/FIRST)
NTILE(...)OVER(PARTITION BY ORDER BY NULLS LAST/FIRST)
最大值最小值查找
MIN(...)/MAX(...) KEEP(DENSE_RANK FIRST/LAST PARTITION BY ORDER BY)
首记录/末记录查找
FIRST_VALUE/LAST_VALUE(SUM(...)OVER(PARTITION BY ORDER BY ROWS BETWEEN ... PRECEDING AND ... FOLLOWING))
相邻记录
LAG(SUM(...),1)OVER(PARTITION BY ORDER BY)
- ORACLE分析函数小结
- oracle函数索引小结
- oracle函数小结
- Oracle 函数小结
- oracle函数小结
- 实战 oracle 函数小结
- 生存分析函数小结
- 72、oracle函数索引小结
- Oracle 常用的函数小结
- Oracle 常用的函数小结
- ORACLE侧时间函数小结
- Oracle 常用的函数小结
- row_number() 、over()函数小结(Oracle)
- oracle常用函数小结(一)
- oracle分析函数浅析
- oracle分析函数
- oracle分析函数
- oracle分析函数
- CCNA学习指南第二章——OSI七层模型
- Itunes备份功能图解教程——很详细哦!希望新手认真看看!
- 子类与父类中的多态demo——虚函数
- 【转】POJ 图论、网络流题目
- C Sharp与.net学习笔记(一)
- ORACLE分析函数小结
- linux多线程驱动中调用udelay()对整个系统造成的影响(by liukun321咕唧咕唧)
- Python在window下备份脚本
- [C++]VC 6.0 fatal error LNK1120: 1 unresolved externals
- java出错!
- USACO1.2 Name That Number
- (hd0,x)和sdaX的表示方法(转)
- Log4j使用总结
- SPUser的用法