oracle分析函数使用
2013-03-05 14:30
357 查看
表tb1的记录如下:
v_date name val
201201 中国 5
201203 中国 9
201204 中国 10
要实现的功能是找出对应日期下个月的val值是什么?用于本月和下月的对比
select v_date,
name,
val,
sum(val) over(order by to_date(v_date, 'yyyymm') range between interval '0' month preceding and interval '1' month following) - val m_val
from tb1;
Range表示数值范围,Rows表示行范围。
Range的语法:
over(order by xx range between n preceding and n following)
Range between必须为聚合函数/开窗函数服务,而且必须针对数值字段,因为表示的是一个数值范围,这个很容易和行范围rows混淆
Rows的语法:
over(order by xx rows between x preceding and y following)
每行对应的数据窗口是之前x行,之后y行,共包括x+1+y行
v_date name val
201201 中国 5
201203 中国 9
201204 中国 10
要实现的功能是找出对应日期下个月的val值是什么?用于本月和下月的对比
select v_date,
name,
val,
sum(val) over(order by to_date(v_date, 'yyyymm') range between interval '0' month preceding and interval '1' month following) - val m_val
from tb1;
Range表示数值范围,Rows表示行范围。
Range的语法:
over(order by xx range between n preceding and n following)
Range between必须为聚合函数/开窗函数服务,而且必须针对数值字段,因为表示的是一个数值范围,这个很容易和行范围rows混淆
Rows的语法:
over(order by xx rows between x preceding and y following)
每行对应的数据窗口是之前x行,之后y行,共包括x+1+y行
相关文章推荐
- Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法(转载)
- Oracle分析函数KEEP、DENSE_RANK的使用
- oracle分析函数row_number() over()使用
- Oracle 分析函数使用记录
- Oracle 分析函数的使用
- Oracle分析函数model使用时需要注意的几个地方(二)
- Oracle 分析函数的使用
- Oracle 分析函数的使用(一)
- oracle分析函数row_number() over()使用(2)
- Oracle分析函数ROW_NUMBER()|RANK()|LAG()使用详解
- oracle分析函数row_number() over()使用
- Oracle 分析函数的使用
- 转:Oracle 分析函数的使用
- Oracle开发专题之:分析函数的使用
- oracle分析函数使用
- 【Oracle篇】分析函数的使用
- oracle中LAG()和LEAD()等分析统计函数的使用方法(统计月增长率)
- 【转】Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
- oracle分析函数row_number() over()使用
- Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法