oracle 行求和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 行求和相关的知识,希望对你有一定的参考价值。

有一张表:
ID NUM1 NUM2 NUM3
1 5 6 0
2 1 2 1
3 0 3 1

要求出每行的总数:
ID NUM1 NUM2 NUM3 总数
1 5 6 0 11
2 1 2 1 4
3 0 3 1 4

请问sql语句怎么写?
补充下,还要在第三条记录下显示每 列的总数: 空 6 11 2 19

oracle中行求和直接用加法即可。

test表数据如下:

如果将maths、chinese、english列的分数求和,可用如下语句:

select id,name,maths,chinese,english,maths+chinese+english as sumscore from test;

结果:

参考技术A select ID, Num1, Num2, Num3, Num1+Num2+Num3 总数 from 表名
union all
select '总计', sum(Num1), sum(Num2), sum(Num3), sum(Num1+Num2+Num3) 总数 from 表名
你应该是要做报表,一般的报表工具中都有行汇总和列汇总功能,用上面的语句效果不太好。本回答被提问者采纳
参考技术B select ID,NUM1,NUM2,NUM3 ,sum(NUM1+NUM2+NUM3 )over(partition by ID) "总数"
from 表 union all
select '汇总',sum(NUM1),sum(NUM2),sum(NUM3 ),sum(总数) from (select id,NUM1,NUM2,英语,
sum(NUM1+NUM2+NUM3 )over (partition by name) "总数"
from 表)
应该可以其实在借助partition
参考技术C count() 函数,至于sql 自己去写;

oracle 求和函数

连续求和分析函数 sum(…) over(…)

NC示例:

1、select bdcode,sum(1) over(order by bdcode) aa from bd_bdinfo 

【示例】

原表信息

规则

sum(…) over( ),对所有行求和。

sum(…) over( order by … ), 连续求和。

sum(…) over( partition by… ),同组内所行求和。

sum(…) over( partition by… order by … ),同第1点中的排序求和原理,只是范围限制在组内。

扩展资料

oracle 数据库的特点

1、完整的数据管理功能:

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

2、完备关系的产品:

1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;

2)保证访问的准则

3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化

4)数据物理性和逻辑性独立准则

3、分布式处理功能:

ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。

参考资料来源:百度百科-Oracle数据库

参考技术A

1、length函数lengthb函数;都是获取字符串长度的函数,lengthb返回字符串长度,单位是字节,按照字节算,length返回字符串长度,单位是字符,按照字符算。

2、INSTR函数:语法为:INSTR(源字符串, 目标字符串, 起始位置)。

3、substr函数:其语法为:substr( string, start_position, [ length ] )这里的length可以有也可以没有。

4、连接字符串:oracle函数中将多个字符串进行连接用||符号进行连接,这个与db2字符串连接是一样的,都是用||连接的。

5、NVL2函数:格式为:NVL2(expr1,expr2, expr3)用法为如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。

参考技术B

1、安装oracle后,运行程序,输入用户名等信息登陆。

2、sysdate的用法,这个是oracle独有的,取当前时间。

3、to_char()函数的用法,将时间转化为特定的格式。

4、将时间转化为汉字形式的时间格式及显示出星期。

5、to_date函数的使用方法,将字符串转换为标准的时间格式。

6、to_number函数的使用方法,这个函数是将数字转换为特定的数字格式,适合特定的要求。

参考技术C

oracle中连续求和分析函数为sum(…) over(…)。

用法:

select bdcode,sum(1) over(order by bdcode) aa from bd_bdinfo

规则:

1、sum(…) over( ),对所有行求和

2、sum(…) over( order by … ), 连续求和

3、sum(…) over( partition by… ),同组内所行求和

4、sum(…) over( partition by… order by … ),同第1点中的排序求和原理,只是范围限制在组内。


扩展资料


数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。

控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。

数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。

日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。

参数文件:记录基本参数。spfile和pfile。

警告文件:show parameter background_dump_dest---使用共享服务器连接。

跟踪文件:show parameter user_dump_dest---使用专用服务器连接。

参考资料来源:百度百科-Oracle数据库

参考技术D

oracle中连续求和分析函数为sum(…) over(…)。

用法:

select bdcode,sum(1) over(order by bdcode) aa from bd_bdinfo

规则:

1、sum(…) over( ),对所有行求和

2、sum(…) over( order by … ), 连续求和

3、sum(…) over( partition by… ),同组内所行求和

4、sum(…) over( partition by… order by … ),同第1点中的排序求和原理,只是范围限制在组内

扩展资料

oracle 单行函数

(1)concat(str1,str2)字符串拼接函数

(2)initcap(str)将每个单词首字母大写,其他字母小写

(3)instr(x,find_string[,start][,occurrence])返回指定字符串在某字符串中的位置,可以指定搜索的开始位置和返回第几次搜索出来的结果

(4)length(str)返回表达式中的字符数

(5)lengthb(str)返回表达式中的字节数

(6)lower(str)将字符串转换为小写

(7)upper(str)将字符串转换为大写

(8)lpad(str,width[,pad_string])当字符串长度不够时,左填充补齐,可以指定补齐时用什么字符补齐,若不指定,则以空格补齐

(9)rpad(str,width[,pad_string])当字符串长度不够时,右填充补齐,原理同左填充

(10)ltrim(x[,trim_string])从字符串左侧去除指定的所有字符串,若没有指定去除的字符串,则默认去除左侧空白符

以上是关于oracle 行求和的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL:如何对每行的每 x 个后续行求和

oracle中列中的数据求和

oracle 同一张表不同类别数据求和wnet

oracle分组求和并求百分比

在 ORACLE 中的子查询的列上求和

Oracle - 按多维数据集分组 - 按不同列求和