SQL Server 聚合函数

SQL聚合函数详解与应用
本文深入探讨SQL聚合函数的功能与使用方法,包括平均值、计数、最大值、最小值、总和以及数学函数等,并通过实际例子展示如何在查询语句中应用这些函数。
聚合函数用于对一组值进行计算并返回一个单一的值。聚合函数经常与查询语句SELECT一起使用。例如,设当前数据库拥有一个员工表employee,其中,有一个工资列salary,要统计所有员工的工资总和,可以使用以下的SELECT语句:SELECT SUM(salary) FROM employee

常用聚合函数:

聚 合 函 数

AVG(表达式)

返回数据表达式(含有列名)的平均值

COUNT(表达式)

对表达式指定的列值进行计数,忽略空值

COUNT(*)

对表或组中的所有行进行计数,包含空值

MAX(表达式)

表达式中最大的值(文本数据类型中按字母顺序排在最后的值)。忽略空值

MIN(表达式)

表达式中最小的值(文本数据类型中按字母顺序排在最前的值)。忽略空值

SUM(表达式)

表达式值的合计

另:
数学函数:

ABS(数字表达式)

返回数字表达式的绝对值

ABS(−1.0)

1.0

SQRT(float表达式)

返回float表达式的平方根

SQRT(2)

1.4142135623730951

SQUARE(float表达式)

返回float表达式的平方

SQUARE(2)

4.0

POWER(数字表达式,y)

返回数字表达式的y次方

POWER(2,6)

64

SIN(float表达式)

返回表达式给定角度(以弧度为单位)的正弦值

SIN(30*3.1416/180)

0.50000106036260283

COS(float表达式)

返回表达式给定角度(以弧度为单位)的余弦值

COS(30*3.1416/180)

0.86602479158293899

TAN(float表达式)

返回表达式给定角度(以弧度为单位)的正切值

tan(45*3.1416/180)

1.0000036732118496

LOG(float表达式)

返回给定float表达式的自然对数

LOG(2.7182)

0.99996989653910984

LOG10(float表达式)

返回给定float表达式的以10为底的对数

LOG10(10)

1.0

EXP(float表达式)

返回所给的float表达式的指数值

EXP(1)

2.7182818284590451

ROUND(数字表达式,长度)

返回数字表达式并四舍五入为指定的长度或精度

ROUND(123.9994,3)

ROUND(748.58, −2)

123.9990

700.00

CEILING(数字表达式)

返回大于或等于所给数字表达式的最小整数

CEILING(123.45)

CEILING(−123.45),

124.00

−123.00

FLOOR(数字表达式)

返回小于或等于所给数字表达式的最大整数

FLOOR(123.45)

FLOOR(−123.45)

123

−124

PI( )

返回π的常量值

PI( )

3.1415926535897931

RADIANS(数字表达式)

将数字表达式指定的角度值转换为弧度值

RADIANS(180.0)

3.141592653589793100

DEGREES(数字表达式)

将数字表达式指定的弧度值转换为角度值

DEGREES(3.1416)

180.000420918299430000

SIGN(数字表达式)

根据给定数字表达式是正、零或负返回10−1

SIGN(23)

SIGN(0)

SIGN(−9)

1

0

−1

RAND([种子值])

返回01之间的随机float值。参数种子值可以省略

RAND(7)

0.71370379104047277

字符串函数:

UPPER(字符表达式)

将指定的字符串转换为大写字符

UPPER('Abcd')

'ABCD'

LOWER(字符表达式)

将指定的字符串转换为小写字符

LOWER('HELLO')

'hello'

LTRIM(字符表达式)

删除指定的字符串起始的所有空格

LTRIM(' how are you')

'how are you'

RTRIM(字符表达式)

删除指定的字符串末尾的所有空格。

RTRIM('how are you ')

'how are you'

SPACE(整数表达式)

返回由重复的空格组成的字符串。空格数由整数表达式指定

'Hello'+SPACE(3)+'Zhang'

'Hello Zhang'

REPLICATE(字符表达式,整数表达式)

以整数表达式指定的次数重复字符表达式

REPLICATE('ab',3)

'ababab'

STUFF(字符表达式1,起始位置,长度,字符表达式2)

删除字符表达式1中从起始位置开始的由长度指定个数的字符,然后在删除的起始位置插入字符表达式2的值

STUFF('abcdef',2,3,'ijklmn')

'aijklmnef'

REVERSE(字符表达式)

返回字符表达式的反转

REVERSE('abc')

'cba'

ASCII(字符表达式)

返回字符表达式最左端字符的ASCII代码值

ASCII('A')

ASCII('Abc')

65

65

CHAR(整数表达式)

将整数表达式的值作为ASCII代码转换为对应的字符

CHAR(65)

'A'

STR(float表达式[,总长度[,小数位数]])

由数字数据转换为字符数据。总长度默认值为10。小数位数默认值为0

STR(3.1415926,8,4)

STR(3.1415926,5)

' 3.1416'

' 3'

LEN(字符表达式)

返回给定字符表达式的字符(而不是字节)个数,不包含尾随空格

LEN('abc')

LEN('abc ')

3

3

RIGHT(字符表达式,长度)

返回字符串中右边指定长度的字符

RIGHT('hello',3)

'llo'

LEFT(字符表达式,长度)

返回字符串中左边指定长度的字符

LEFT('hello',3)

'hel'

SUBSTRING(表达式,起始位置,长度)

返回表达式从指定起始位置开始,指定长度的部分,表达式可以是字符串、binarytext image类型的数据

SUBSTRING('hello',3,2)

SUBSTRING('hello',3,5)

'll'

'llo'

CHARINDEX(字符表达式1,字符表达式2[,起始位置])

查找并返回字符表达式1在字符表达式2中出现的起始位置,如果指定参数“起始位置”,则从该起始位置开始向后搜索

CHARINDEX('cd','abcdabcd')

CHARINDEX('cd','abcdabcd',4)

CHARINDEX('dc','abcdabcd')

3

7

0

REPLACE(字符表达式1,字符表达式2,字符表达式3)

用字符表达式3替换字符表达式1中出现的所有字符表达式2

REPLACE('abcdefghicde','cde','xxx')

'abxxxfghixxx'

事件和日期函数:

GETDATE( )

返回当前系统日期和时间

GETDATE( )

2012-03-24 21:46:38.320

DATEADD(日期部分,数字,日期)

对指定日期的某一部分加上数字指定的数,返回一个新的日期。日期部分取值见表4-15

DATEADD(DAY,1,'1780-11-01')

DATEADD(MONTH,5,'1780-11-01')

11 2 1780 12:00AM

04 1 1781 12:00AM

DATEDIFF(日期部分,起始日期,终止日期)

返回指定的起始日期和终止日期之间的差额,日期部分规定了对日期的哪一部分计算差额。日期部分取值见表4-14

DATEDIFF

(MONTH,'1780-1-11','1780-11-01')

DATEDIFF

(YEAR,'1790-1-11','1780-11-01')

10

−10

DATENAME(日期部分,日期)

返回代表指定日期的指定日期部分,结果为字符类型

DATENAME(month,getdate())

08

(设当前为8月份)

DAY(日期)

返回指定日期的天数,结果为int类型

DAY('03/12/1998')

12

MONTH(日期)

返回指定日期的月份数,结果为int类型

MONTH('03/12/1998')

3

YEAR(日期)

返回指定日期的年份数,结果为int类型

YEAR('03/12/1998')

1998


### SQL Server 聚合函数的使用方法 聚合函数SQL Server中用于执行计算并返回单个值的结果。这些函数通常应用于一组记录,而不是单独的一行数据。当需要将聚合函数与其他列一起使用时,必须通过 `GROUP BY` 子句指定分组依据[^1]。 #### 常见的SQL Server聚合函数及其功能 以下是几种常用的SQL Server聚合函数以及它们的功能: - **COUNT**: 计算某列中的总行数。 - **SUM**: 返回某一数值型字段的总计值。 - **AVG**: 获取某个数值型字段的平均值。 - **MAX**: 找到某一列的最大值。 - **MIN**: 查找某一列的最小值。 #### 示例代码展示 下面是一些具体的例子来说明如何应用上述提到的各种聚合函数。 ##### 1. COUNT 函数示例 统计学生表中有多少条记录: ```sql SELECT COUNT(*) AS TotalStudents FROM Student; ``` ##### 2. SUM 函数示例 假设有一个订单详情表(OrderDetails),其中包含每项商品的价格(Price)和数量(Quantity),可以这样计算总的销售额: ```sql SELECT SUM(Price * Quantity) AS TotalSales FROM OrderDetails; ``` ##### 3. AVG 函数示例 获取学生的平均分数: ```sql SELECT AVG(Score) AS AverageScore FROM Student; ``` ##### 4. MAX 和 MIN 函数示例 找出最高与最低成绩的学生得分情况: ```sql SELECT MAX(Score) AS HighestScore, MIN(Score) AS LowestScore FROM Student; ``` 另外,如果希望按照特定条件进一步分析,则可以通过加入WHERE语句实现更精确的数据筛选;或者利用GROUP BY来进行分类汇总操作^。 例如,如果我们想查看各个部门员工薪资排名的情况,可采用如下方式结合窗口函数完成此需求[^2]: ```sql SELECT EmployeeID, DepartmentID, Salary, ROW_NUMBER() OVER (PARTITION BY DepartmentID ORDER BY Salary DESC) AS SalaryRank FROM Employees; ``` 以上就是关于SQL Server 中几个典型聚合函数的基础介绍及实际运用案例解析[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值