SQL SUM()函数详解及用法示例

创始人
2024-12-27 06:56:13
0 次浏览
0 评论

sql sum函数的用法

SQL的SUM()函数是计算数字列总和的重要工具。
数据分析和报告生成非常有用。
让我们通过一个例子来详细了解它的用法。

如果你想使用SUM()函数,你必须首先了解它的基本语法。
某些操作通常通过指定列名来计算总和。
例如,如果您有一个名为“access_log”的表,并且想要统计其中“count”列的总数,则可以使用以下SQL语句:

SELECTSUM(count)FROMaccess_log;

这里,我们告诉数据库SELECTSUM(count)部分是关键,我们要对“count”列执行求和操作马苏。
“FROMaccess_log”指定数据源,即“access_log”表。

出于演示目的,本教程使用shulanxt示例数据库。
此外,“access_log”表中的数据用作示例数据。
在此示例中,您可以了解如何SUM()函数应用于实际查询,以快速获取所需数据的概览。

在sql中sum(casewhen)和casewhensum()区别

我们总结一下SQL中的两个使用场景:`sum(casewhen)`和`casewhensum()`,以帮助理解它们在数据查询方面的差异。
通常在SQL查询中,sum(casewhen)用于根据特定条件对数据进行分组,例如统计某一年不同部门的员工人数。
典型的实现是:在`SELECT`语句中使用`COUNT(1)`对每条记录进行计数,然后使用`CASEWHEN`语句进行​​条件判断,累加满足条件的记录。
例如,统计某年各部门的员工人数:sqlSELECTSUBSTR(to_char(hiredate,'yyyy/mm/dd'),1,4),COUNT(1),SUM(CASEWHENdeptno='10'THEN1END)depno10,SUM(CASEWHENdeptno='20'THEN1END)depno20,SUM(CASEWHENdeptno='30'THEN1END)depno30,SUM(CASEWHENdeptno='40'THEN1END)depno40FROMempGROUPBYSUBSTR(to_char(hiredate,'yyyy/mm/dd'),1,4)在第二种方法中,使用casewhensum()`来获取使用类似的功能。
同样使用COUNT(1)进行计数,然后使用CASEWHEN进行条件判断,但将COUNT(1)放在CASEWHEN语句之后。
典型示例为:sqlSELECTSUBSTR(to_char(hiredate,'yyyy/mm/dd'),1,4),COUNT(1),CASEWHENdeptno='10'THENCOUNT(1)ENDdepno10,CASEWHENdeptno='20'THENCOUNT(1)ENDdepno20,CASEWHENdepno='30'THENCOUNT(1)ENDdepno30,CASEWHENdeptno='40'THENCOUNT(1)ENDdepno40FROMempGROUPBYSUBSTR(to_char(hiredate,'yyyy/mm/dd'),1,4),depno主要区别是:使用`sum(casewhen)`、`CASEWHEN'而“Statement”中的决策字段应该是“GROUPBY”中的分组字段。
casenumber()方法相对灵活,但需要注意的是,当对部门特定数据使用casenumber()时,您将无法同时获取员工总数。

第十一章SQL聚合函数SUM

SQLSUM聚合函数用于返回指定列值的总和。
该函数返回与表达式相同的数据类型,但在某些情况下,TINYINT、SMALLINT和INTEGER返回的数据类型是INTEGER。

SUM可以用作聚合函数或窗口函数。
本参考页将重点解释SUM作为聚合函数的用法。
有关SUM作为窗口函数的更多信息,请参阅窗口函数概述。

SUM聚合函数将返回表达式值的总和。
通常,该表达式是查询结果中的字段名称或包含一个或多个字段的表达式。

SUM可以用在引用表或视图的SELECT查询中,也可以与SELECT列表或HAVING子句中的公共字段值一起出现。
但是,除非SELECT部分是子查询,否则SUM不能在JOIN的WHERE子句或ON子句中使用。

使用SUM时,可以添加可选的DISTINCT子句。
SUM(DISTINCTcol1)简单地总结了col1字段的不同值。
SUM(DISTINCTBY(col2)col1)仅对具有不同(唯一)col2值的记录中的col1字段值求和。
但请注意,不同的col2值可能包含单独的NULL值。

对于数据类型为INT、SMALLINT或TINYINT的表达式,SUM返回的数据类型为INTEGER。
对于BIGINT数据类型表达式,SUM返回BIGINT数据类型。
对于DOUBLE数据类型的表达式,SUM返回DOUBLE数据类型。
对于所有其他数值数据类型,SUM返回数值数据类型。

SUM返回的值的精度为18。
返回值的小数位数与表达式的小数位数相同,但如果表达式是数字类型VARCHAR或VARBINARY,则返回值的小数位数返回值为8。

默认情况下,SUM使用逻辑(内部)数据值而不是显示值。
SUM通常用于具有数值的字段或表达式,尽管理论上可以在非数字字段上调用​​SUM。
SUM将包含空字符串(")的非数字值计算为0(0)。
如果表达式的类型为VARCHAR,则通过ODBC或JDBC返回的值的数据类型为DOUBLE。

当生成SUM聚合函数值时,数据字段中的NULL值将被忽略如果查询没有返回行,或者数据字段所有行都有NULL值,则SUM在优化SUM计算时返回NULL,如果索引是。
为p>

SUM字段定义的始终返回数据的当前状态,包括非提交更改,无论考虑级别如何当前事务隔离

下面是使用SUM的示例:

查询所有员工的总工资使用HAVING子句返回每个州的所有工资在80,000美元以上的总工资至少一名薪资在$80,000以上的人返回示例。
每个职位的总薪资和平均薪资使用算术表达式结合SUM返回示例中每个职位名称当前薪资总额和加薪10%的情况进行计算。
所有受薪员工,并使用SUM来统计年薪为90,000美元或以上的所有受薪员工。
文章标签:
SQL SUM函数
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...