ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 如何用分析函数写出一列的汇总值,在线等待!

标题: 如何用分析函数写出一列的汇总值,在线等待!
离线 kmpx
VICTORY


精华贴数 0
个人空间 0
技术积分 1078 (1713)
社区积分 1 (43006)
注册日期 2006-10-8
论坛徽章:1
2008北京奥运纪念徽章:铁人三项     
      

发表于 2008-9-24 10:05 
如何用分析函数写出一列的汇总值,在线等待!

表tab1
col1 varchar2(10);
col2 varchar2(10);
col3 varchar2(10);
col4 number;
col1   col2    col3    col4
a       b         c         10
a       b         c1        12
a       b1       c         11
a       b1       c2        14
a1     b         c          15
要得出如下如果
col1   col2    col3    sum(col4)    总值
a       b         c         10               62
a       b         c1        12               62
a       b1       c         11               62
a       b1       c2        14               62
a1     b         c          15               62
请教,在线等待
论坛以前好像有过相关的贴现,但是我找不到!

[ 本帖最后由 kmpx 于 2008-9-24 10:24 编辑 ]


__________________
别揣着糊涂装明白
只看该作者    顶部
在线/呼叫 jack198409
中级会员


来自 湖北武汉
精华贴数 0
个人空间 484
技术积分 3219 (476)
社区积分 3467 (416)
注册日期 2007-8-10
论坛徽章:35
NBA2008季后赛纪念徽章NBA季后赛之星2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:柔道
2008北京奥运纪念徽章:帆船2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:垒球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:举重2008北京奥运纪念徽章:足球

发表于 2008-9-24 10:11 


QUOTE:
原帖由 kmpx 于 2008-9-24 10:05 发表
表tab1
col1 varchar2(10);
col2 varchar2(10);
col3 varchar2(10);
col4 number;
col1   col2    col3    col4
a       b         c         10
a       b         c1        12
a       b1       c         11
a       b1       c2        14
a1     b         c          15
要得出如下如果
col1   col2    col3    sum(col4)    总值
a       b         c         10               62
a       b         c1        12               62
a       b1       c         11               62
a       b1       c2        14               62
a1     b         c          15               62
请教,在线等待

SQL> WITH A AS (SELECT 'A' COL1,'B' COL2,'C' COL3,10 COL4 FROM DUAL
  2             UNION
  3             SELECT 'A' COL1,'B' COL2,'C1' COL3,12 COL4 FROM DUAL
  4             UNION
  5             SELECT 'A' COL1,'B1' COL2,'C' COL3,11 COL4 FROM DUAL
  6             UNION
  7             SELECT 'A1' COL1,'B1' COL2,'C' COL3,50 COL4 FROM DUAL
  8             )
  9  select COL1,COL2,COL3,SUM(COL4)OVER(ORDER BY SUBSTR(COL1,1,1)) COL4
10  FROM A
11  /

COL1 COL2 COL3       COL4
---- ---- ---- ----------
A    B    C            83
A    B    C1           83
A    B1   C            83
A1   B1   C            83


__________________
金麟岂是池中物,一遇风云便化龙!


我的SPACE空间欢迎您!
   


只看该作者    顶部
在线/呼叫 dingjun123
djゆoracle


来自 china
精华贴数 3
个人空间 0
技术积分 1915 (912)
社区积分 15 (8980)
注册日期 2006-7-28
论坛徽章:2
2008北京奥运纪念徽章:铁人三项ITPUB新首页上线纪念徽章    
      

发表于 2008-9-24 10:13 
PHP code:


select col1
,

           
col2,

           
col3

           
col4,

           
sum(col4over (order by col4 rows between unbounded preceding and unbounded followingsum

from tab1
;

要通过日期汇总,可以在analytic clause中按日期partition

[ 本帖最后由 dingjun123 于 2008-9-24 10:21 编辑 ]


__________________
软件体系架构要以数据库为中心,如oracle,可以充分利用数据库的特性,帮助解决复杂的问题。一个常用的规则是:
如果能用单条sql解决,ok
如果不能用单条sql解决,考虑使用PL/SQL
如果不能用PL/SQL解决,考虑使用java存储过程
如果不能用java解决,那么考虑使用c外部过程
如果c都解决不了,那么考虑一下放弃吧
只看该作者    顶部
离线 kmpx
VICTORY


精华贴数 0
个人空间 0
技术积分 1078 (1713)
社区积分 1 (43006)
注册日期 2006-10-8
论坛徽章:1
2008北京奥运纪念徽章:铁人三项     
      

发表于 2008-9-24 10:17 
col4的数据也要展现出来,一共5列,而且col4也要sum--(因为是通过日期进行汇总),第五列是所有符合条件的记录的sum(col4)
不知道我有没说明白!


__________________
别揣着糊涂装明白
只看该作者    顶部
离线 kmpx
VICTORY


精华贴数 0
个人空间 0
技术积分 1078 (1713)
社区积分 1 (43006)
注册日期 2006-10-8
论坛徽章:1
2008北京奥运纪念徽章:铁人三项     
      

发表于 2008-9-24 10:26 
好了可以了,谢谢,结贴!


__________________
别揣着糊涂装明白
只看该作者    顶部
离线 lemonlau
学好oracle


来自 湖北---广东
精华贴数 1
个人空间 0
技术积分 673 (2890)
社区积分 14 (9370)
注册日期 2008-1-11
论坛徽章:1
2008北京奥运纪念徽章:羽毛球     
      

发表于 2008-9-24 11:06 


QUOTE:
原帖由 dingjun123 于 2008-9-24 10:13 发表
PHP code:


select col1
,

           
col2,

           
col3

           
col4,

           
sum(col4over (order by col4 rows between unbounded preceding and unbounded followingsum

from tab1
;

要通过日期汇总,可以在analytic clause中按日期partition



此段学习!


__________________
两年前有人问我erp是什么?我傻了。又问我sql是什么,我还是傻了。两年后我终于踏上了这条道路。
希望pub的朋友多多指教
只看该作者    顶部
离线 lixuezhen
探险者


精华贴数 0
个人空间 0
技术积分 394 (5055)
社区积分 226 (2279)
注册日期 2006-11-10
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-9-24 14:50 


QUOTE:
原帖由 dingjun123 于 2008-9-24 10:13 发表
PHP code:


select col1
,

           
col2,

           
col3

           
col4,

           
sum(col4over (order by col4 rows between unbounded preceding and unbounded followingsum

from tab1
;

要通过日期汇总,可以在analytic clause中按日期partition



liu wei


__________________
继续顶红
只看该作者    顶部
 
    

相关内容


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