ITPUB??ì3
报名申请微软有影响力专家
ITPUB论坛 » Oracle入门与认证 » Oracle 语法之 OVER (PARTITION BY ..)

标题: Oracle 语法之 OVER (PARTITION BY ..)
离线 myhuaer
Oracle Ex



精华贴数 0
个人空间 0
技术积分 1110 (1705)
社区积分 35 (6108)
注册日期 2003-1-14
论坛徽章:2
授权会员2008新春纪念徽章    
      

发表于 2005-2-22 17:26 
Oracle 语法之 OVER (PARTITION BY ..)

select * from test

数据:
A   B   C
1   1   1
1   2  2
1   3   3
2   2  5
3   4  6


---将B栏位值相同的对应的C 栏位值加总
select a,b,c, SUM(C)  OVER (PARTITION BY B) C_Sum
from test

A   B   C   C_SUM  
1 1 1 1
1 2 2 7
2 2 5 7
1 3 3 3
3 4 6 6



---如果不需要已某个栏位的值分割,那就要用 null

  eg:  就是将C的栏位值summary 放在每行后面

select a,b,c, SUM(C)  OVER (PARTITION BY null) C_Sum
from test

A   B   C   C_SUM  
1 1 1 17
1 2 2 17
1 3 3 17
2 2 5 17
3 4 6 17


__________________
理想,目标,辛勤的汗水!HPCP & OCPBlog:http://blog.itpub.net/myhuaer
只看该作者    顶部
离线 Andy_GaoWei
一般会员


精华贴数 0
个人空间 0
技术积分 124 (14618)
社区积分 0 (212553)
注册日期 2004-11-21
论坛徽章:0
      
      

发表于 2005-3-2 08:43 
你是意思 我明白,可是什么时候会用到这个呢?


__________________
*************************************************Name:Andy.GaoMsn:Andy_GaoWei@hotmail.comTel:13841554918EMail:Andy_GaoWei@163.com*************************************************
只看该作者    顶部
离线 dlinger
凌波微步


精华贴数 15
个人空间 0
技术积分 14664 (80)
社区积分 3426 (439)
注册日期 2002-9-24
论坛徽章:9
ITPUB元老Heart of PUBITPUB北京九华山庄2008年会纪念徽章参与2007年甲骨文全球大会(中国上海)纪念管理团队2006纪念徽章会员2007贡献徽章
会员2006贡献徽章ITPUB新首页上线纪念徽章    

发表于 2005-3-2 09:35 
oracle有一类函数,叫做统计函数,
就是提供来分组查询计算统计使用的。
pub里讨论这个的帖子不少,有兴趣的可以search一下。


__________________
Rain or Shine, I am fine.[url="http://knight_dl.photo.163.com"]我的图片社,每天更新[/url]:cool:
只看该作者    顶部
离线 dianchou
初级会员



精华贴数 0
个人空间 0
技术积分 34 (38235)
社区积分 0 (445106)
注册日期 2005-6-3
论坛徽章:0
      
      

发表于 2005-6-3 09:35 
Oracle 语法之 OVER (PARTITION BY ..)

请问 OVER (PARTITION BY ..)在sql server中有没有类似的用法?
谢谢!


只看该作者    顶部
离线 dlinger
凌波微步


精华贴数 15
个人空间 0
技术积分 14664 (80)
社区积分 3426 (439)
注册日期 2002-9-24
论坛徽章:9
ITPUB元老Heart of PUBITPUB北京九华山庄2008年会纪念徽章参与2007年甲骨文全球大会(中国上海)纪念管理团队2006纪念徽章会员2007贡献徽章
会员2006贡献徽章ITPUB新首页上线纪念徽章    

发表于 2005-6-4 21:42 
Re: Oracle 语法之 OVER (PARTITION BY ..)



QUOTE:
最初由 dianchou 发布
请问 OVER (PARTITION BY ..)在sql server中有没有类似的用法?
谢谢!


sqlserver中没有。
我最近正打算把这写统计函数的整理成文档,提交给sql server的designer team作为下个版本的新feature呢,不过不知道team最后的决定。


__________________
Rain or Shine, I am fine.[url="http://knight_dl.photo.163.com"]我的图片社,每天更新[/url]:cool:
只看该作者    顶部
离线 jackson08
初级会员



精华贴数 0
个人空间 0
技术积分 2 (194207)
社区积分 0 (615405)
注册日期 2005-9-15
论坛徽章:0
      
      

发表于 2005-9-15 10:49 
请问哪里有ORACLE数据比较齐全的资料?知道都请告知,再下十分感谢!!!1


只看该作者    顶部
离线 MR.PERFECT
初级会员



精华贴数 0
个人空间 0
技术积分 26 (46693)
社区积分 2 (28869)
注册日期 2005-9-5
论坛徽章:0
      
      

发表于 2005-9-15 14:32 
可以用在求个人工资占部门工资的百分比

SQL> select * from salary;

NAME       DEPT   SAL
---------- ---- -----
a          10    2000
b          10    3000
c          10    5000
d          20    4000

SQL> select name,dept,sal,sal*100/sum(sal) over(partition by dept) percent from salary;

NAME       DEPT   SAL    PERCENT
---------- ---- ----- ----------
a          10    2000         20
b          10    3000         30
c          10    5000         50
d          20    4000        100


只看该作者    顶部
离线 maomaoelaine
初级会员



精华贴数 0
个人空间 0
技术积分 10 (90574)
社区积分 2 (27947)
注册日期 2005-4-20
论坛徽章:0
      
      

发表于 2006-4-28 15:10 
好贴,做report时用上了


只看该作者    顶部
离线 imissher
版主


精华贴数 7
个人空间 0
技术积分 8301 (164)
社区积分 2575 (535)
注册日期 2003-6-12
论坛徽章:67
现任管理团队成员ITPUB元老授权会员生肖徽章2007版:猴生肖徽章2007版:牛ITPUB新首页上线纪念徽章
      

发表于 2006-5-16 12:09 
Faint!
看了半天才知道栏位是列,怎么用这种叫法啊
改成列行不行啊


只看该作者    顶部
离线 beijing3721


精华贴数 0
个人空间 0
技术积分 1481 (1202)
社区积分 7 (13635)
注册日期 2005-2-18
论坛徽章:5
生肖徽章2007版:猴生肖徽章2007版:鸡生肖徽章2007版:鼠生肖徽章2007版:牛ITPUB新首页上线纪念徽章 
      

发表于 2006-6-1 17:57 
HAO REN A,HAO TIE A


__________________
oracle在线文档:http://tahiti.oracle.com
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰网域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:060528号 联系我们 法律顾问