在 SQL 中,聚合函数是一类用于对数据集进行 汇总计算 的特殊函数。它们可以对一组数据执行诸如计数、求和、平均值、最大值和最小值等操作。聚合函数通常在 SELECT 语句中配合 GROUP BY 子句使用,用于对分组后的数据进行汇总分析。
常见的聚合函数包括:
COUNT:计算指定列的行数或非空值的数量。
SUM:计算指定列的数值之和。
AVG:计算指定列的数值平均值。
MAX:找出指定列的最大值。
MIN:找出指定列的最小值。
示例
假设有一个订单表 orders,包含以下字段:order_id(订单号)、customer_id(客户编号)、amount(订单金额)。数据如下:
order_id
customer_id
amount
1
A001
100
2
A002
200
3
A001
150
4
A003
50
1)使用聚合函数 COUNT 计算订单表中的总订单数:
SELECT COUNT(*) AS order_num FROM orders
查询结果:
order_num
4
2)使用聚合函数 COUNT(DISTINCT 列名) 计算订单表中不同客户的数量:
SELECT COUNT(DISTINCT customer_id) AS customer_num FROM orders
查询结果:
customer_num
3
3)使用聚合函数 SUM 计算总订单金额:
SELECT SUM(amount) AS total_amount FROM orders
查询结果:
total_amount
500
题目
假设有一个学生表 student,包含以下字段:id(学号)、name(姓名)、class_id(班级编号)、score(成绩)。请你编写一个 SQL 查询,汇总学生表中所有学生的总成绩(total_score)、平均成绩(avg_score)、最高成绩(max_score)和最低成绩(min_score)。
id
name
class_id
score
1
鸡哥
1
2.5
2
鱼皮
1
400
3
热dog
2
600
4
摸FISH
2
360
5
李阿巴
3
120
6
老李
3
500
7
李变量
4
390
8
王加瓦
4
0
9
赵派森
4
600
10
孙加加
5
100.5
点击查看答案
select
SUM(score) as total_score,
AVG(score) as avg_score,
MAX(score) as max_score,
MIN(score) as min_score
from student