# 错误
# select gpa from user_profile
# where gpa= max(gpa) and university='复旦大学';

# 使用max方法1:用max-最大值函数
select max(gpa) as gpa
from user_profile
where university='复旦大学'

# 方法2:降序排序取第一名
select gpa
from user_profile
where university='复旦大学'
order by gpa desc 
limit 1;


知识

使用聚合函数汇总数据

SQL提供的统计函数有:

COUNT(【Shift+8】):统计表中元组个数;

COUNT([DISTINCT] <列名>):统计本列列值个数;

SUM( <列名> ):计算列值总和;

AVG( <列名> ):计算列值平均值;

MAX( <列名> ):求列值最大值;

MIN( <列名> ): 求列值最小值。

上述函数中除COUNT(【Shift+8】)外,其他函数在计算过程中均忽略NULL值。

统计函数不能出现在WHERE子句中。

例如,查询成绩最高的学生的学号,如下写法是错误的:

SELECT 学号 FROM 成绩表

WHERE 成绩 = MAX(成绩)

例29.统计学生总人数。

1

SELECTCOUNT(*) FROM学生表

例30.统计选修了课程的学生的人数。

1

2

SELECTCOUNT(DISTINCT学号)

FROM成绩表

例31.计算学号为“11214D24”的学生的考试总成绩之和。

1

2

SELECTSUM(成绩) FROM成绩表

WHERE学号 = ‘11214D24 '

例32.计算“M01F011”课程的学生的考试平均成绩。

1

2

SELECTAVG(成绩) FROM成绩表

WHERE课程号 = ‘M01F011 ‘

例33.查询选修了“M01F011” 课程的最高分和最低分。

复制代码

1

2

3

SELECTMAX(成绩) 最高分,

MIN(成绩) 最低分 FROM成绩表

WHERE课程号 = ‘M01F011 '