当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
over(partitionby)记录
发布时间:2010/10/17 22:26:49 来源:城市学习网 编辑:ziteng

  SELECT t.*, sum(t.sal) over(partition by t.name,t.part)

  as 本部门工资总和

  FROM ATEST t

  // over()表示没有条件的所有的sal相加的结果

  SELECT t.*, t.sal/sum(t.sal) over(),sum(t.sal) over() as sum

  FROM ATEST t

  //用下面的方法可以获取按照part来排列每个part的sal总和,最后只得到part-sum(sal)为一对一的关系

  select * from

  (

  select row_number()  over(partition by t.part order by t.emp) as nx,

  t.*  ,sum(t.sal) over(partition by t.name,t.part)

  as 本部门工资总和 FROM ATEST t ) where nx=1

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved