OVER用法
2014-03-16 13:50
288 查看
over()函数是Oracle的分析函数,其语法如下:
函数名( [参数
]) over( [分区子句
] [排序子句 [滑动窗口子句
] ])
分区子句类似于聚组函数所需要的group by,排序子句可看成是SQL语句中的order
by,只不过在此语句中还可指定null值排前(nulls first)还是排后(nulls
last)。
具体用法:
1、sum(num)
over()
SELECT JKRQ,SE,SUM(SE) OVER () FROM SBZSHX.SB_LC_YQNS_SP;
对查询字段进行求和,查询结果条数不变(区别于直接写sum)
2、sum(num) over (order by num)
select JKRQ,SE,sum(SE) over (order by SE) from SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序后,再累计求和
3、sum(num) over(partition by num)
select JKRQ,SE,sum(SE) over (PARTITION BY JKRQ) from SBZSHX.SB_LC_YQNS_SP;
对查询字段分区,在分区内求和(查询结果条数不变)
4、sum(SE) over (PARTITION BY JKRQ order by SE)
select JKRQ,SE,sum(SE) over (PARTITION BY JKRQ order by SE) from SBZSHX.SB_LC_YQNS_SP;
对查询字段进行分区,在分区内进行累计求和
5、ROW_NUMBER() OVER(ORDER BY SE)
SELECT JKRQ,SE,ROW_NUMBER() OVER(ORDER BY SE) from SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序,根据排序编号
6、RANK() OVER (ORDER BY SE)
SELECT JKRQ,SE,RANK() OVER (ORDER BY SE) FROM SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序,并根据查询字段的值编号
7、DENSE_RANK() OVER(ORDER BY SE)
SELECT JKRQ,SE,DENSE_RANK() OVER(ORDER BY SE) FROM SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序,并根据查询字段的值编号(连续)
函数名( [参数
]) over( [分区子句
] [排序子句 [滑动窗口子句
] ])
分区子句类似于聚组函数所需要的group by,排序子句可看成是SQL语句中的order
by,只不过在此语句中还可指定null值排前(nulls first)还是排后(nulls
last)。
具体用法:
1、sum(num)
over()
SELECT JKRQ,SE,SUM(SE) OVER () FROM SBZSHX.SB_LC_YQNS_SP;
对查询字段进行求和,查询结果条数不变(区别于直接写sum)
2、sum(num) over (order by num)
select JKRQ,SE,sum(SE) over (order by SE) from SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序后,再累计求和
3、sum(num) over(partition by num)
select JKRQ,SE,sum(SE) over (PARTITION BY JKRQ) from SBZSHX.SB_LC_YQNS_SP;
对查询字段分区,在分区内求和(查询结果条数不变)
4、sum(SE) over (PARTITION BY JKRQ order by SE)
select JKRQ,SE,sum(SE) over (PARTITION BY JKRQ order by SE) from SBZSHX.SB_LC_YQNS_SP;
对查询字段进行分区,在分区内进行累计求和
5、ROW_NUMBER() OVER(ORDER BY SE)
SELECT JKRQ,SE,ROW_NUMBER() OVER(ORDER BY SE) from SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序,根据排序编号
6、RANK() OVER (ORDER BY SE)
SELECT JKRQ,SE,RANK() OVER (ORDER BY SE) FROM SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序,并根据查询字段的值编号
7、DENSE_RANK() OVER(ORDER BY SE)
SELECT JKRQ,SE,DENSE_RANK() OVER(ORDER BY SE) FROM SBZSHX.SB_LC_YQNS_SP;
对查询字段进行排序,并根据查询字段的值编号(连续)
相关文章推荐
- SQL技术内幕-4 row_number() over( partition by XX order by XX)的用法(区别于group by 和order by)
- 浅谈oracle中row_number() over()分析函数用法
- ROW_NUMBER() OVER函数的基本用法用法
- row_number(),dense_rank(),rank(),Over,Pivot用法说明
- Oracle中的 row_number() over (partition by order by ) 用法
- MS SQL2005中ROW_NUMBER() OVER函数的用法
- ROW_NUMBER() OVER函数的基本用法
- ROW_NUMBER() OVER函数的基本用法
- SQL中ROW_NUMBER()/RANK() /DENSE_RANK() OVER函数的基本用法
- row_number() over(partition by a order by b desc) rn 用法
- SQL技术内幕-6 rank()over(order by XX COLLATE) 的用法
- row_number() over (partition by....order by...)用法 分组排序
- SQL语句中OVER函数的用法
- OVER(PARTITION BY)函数用法
- jQuery hover(over,out)事件的用法
- ROW_NUMBER() OVER函数的基本用法用法
- SQL ROW_NUMBER() OVER函数的基本用法用法
- ROW_NUMBER() OVER函数的基本用法
- row_number() over()用法理解
- [转]ROW_NUMBER() OVER函数的基本用法