oracle over函数, wm_concat()字符串连接函数使用
2015-08-03 11:34
1006 查看
OVER ( [ <PARTITION BY clause> ] [ <ORDER BY clause> ] [ <ROW or RANGE clause> ] )
在应用关联的开窗函数前确定行集的分区和排序。 也就是说,OVER
子句定义查询结果集内的窗口或用户指定的行集。 然后,开窗函数将计算窗口中每一行的值。 您可以将
OVER 子句与函数一起使用,以便计算各种聚合值,例如移动平均值、累积聚合、运行总计或每组结果的前 N 个结果。
对查询的结果集进行分组处理,例如求和等
SELECT
a.empno AS 员工编号 ,
a.ename AS 员工姓名 ,
a.deptno AS 部门编号 ,
a.sal AS 薪酬 ,
SUM(sal) over(PARTITION BY deptno) 按部门求薪酬总和 ,
SUM(sal) over(PARTITION BY deptno ORDER BY sal) 按部门累计薪酬 from scott.emp a;
SUM(sal)
over(PARTITION BY deptno) :会按部门进行求合汇总
SUM(sal) over(PARTITION BY deptno ORDER BY sal) 会按部门进行求合汇总, 但是进行累计求和。
wm_concat:
把多行结果集以,号拼接成一行
SELECT deptno,
wm_concat(empno )
FROM scott.emp GROUP BY deptno
over函数与wm_concat结合使用一次查出所有结果
--用,号分隔的一对多,用这种方式一次查询
select dname, wm_concat(e.ename)
OVER(PARTITION BY e.deptno)
from emp e, dept d
where e.deptno = d.deptno
相关文章推荐
- DATAGUARD ORA-01274 ORA-01111处理
- oracle查询某张表某个时间点的数据(表结构未改变前)
- 关于Oracle报错ORA-00979不是GROUP BY表达式
- Order by n...是什么意思?
- win8系统安装Oracle 11g报错:[INS-13001]环境不满足最低要求--解决办法
- 随机生成编码(判断重复)(oracle函数)
- Centos6.5 x86_64下 静默安装Oracle 11g R2
- oracle 时间类型date 按天模糊查询
- 强制获取序列下一个值/当前值(oracle函数)
- oracle: linux服务器本机不能登陆的解决
- 获取指定日期的随机时间(oracle函数)
- oracle_Listener in INTERMEDIATE status with "Not All Endpoints Registered"
- vs2005(或是2010)下oracle 10g oci编程环境的配置
- oracle存储过程定时执行简单例子
- 2015年8月2日--第二三四天Oracle的sql文件
- oracle 11.2.0.4 ora.crf日志较大,超过50G
- Oracle数据库导入导出命令总结
- Oracle 11G Client 客户端安装步骤(图文详解)
- Oracle 常见函数使用汇总
- 风清杨之Oracle的安装与说明