SQL SUM()函数详解及用法示例
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 COUNT函数使用指南:从基础到...
2024-12-24 00:28:41
MySQL SQL语句创建表与连接操作指...
2025-01-30 03:48:17
SQL Server远程连接配置全攻略:...
2024-12-16 15:39:26
SQL查询技巧:轻松识别只含字母、数字或...
2024-12-19 01:02:53
SQL查询技巧:全面解析表查询与字段搜索...
2024-12-25 04:16:11
SQL2000数据库启动失败?一招解决过...
2024-12-17 07:51:17
MySQL IN查询索引使用揭秘:数据量...
2025-01-12 03:18:48
MySQL数据类型转换攻略:全面解析与实...
2025-03-24 03:24:13
MySQL高效查询:轻松应对千万级数据挑...
2024-12-18 00:15:20