MySQL查询 – MAX() + GROUP BY

MySQL查询 – MAX() + GROUP BY

MySQL是一个广泛使用的开源数据库管理系统,常用于Web应用程序的数据管理。在数据库查询中,由于表格中可能有重复的值,需要对这些值进行分组计算,这时就需要使用到GROUP BY语句。而MAX()函数用于返回一组数据中的最大值,结合GROUP BY语句,可以快速地计算出每个分组中的最大值。

阅读更多:MySQL 教程

语法

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s) ASC|DESC;
Mysql

在以上语法中,GROUP BY和HAVING是可选的。

  • column_name(s):需要检索的列名称。
  • table_name:需要检索的表名称。
  • condition:可选,用于筛选与条件匹配的行。
  • GROUP BY column_name(s):将查询结果分组,以便对每个分组执行聚合函数。
  • HAVING condition:可选,过滤分组后已经返回的结果。
  • ORDER BY column_name(s) ASC|DESC:通过列名称指定结果集的排序方式,ASC表示升序,DESC表示降序。

示例

假设有以下学生课程信息表格:

student course score
Amy Math 78
Amy English 82
Bob Math 90
Bob English 86
Cindy Math 92
Cindy English 88

查询每个学生的最高分

SELECT student, MAX(score) as highest_score
FROM student_course
GROUP BY student;
Mysql

查询结果:

student highest_score
Amy 82
Bob 90
Cindy 92

查询数学课程分数最高的学生

SELECT student, MAX(score) as highest_score
FROM student_course
WHERE course = 'Math'
GROUP BY student;
Mysql

查询结果:

student highest_score
Bob 90
Cindy 92

总结

通过合理地使用MySQL的MAX()函数和GROUP BY语句,可以快速地查询出所需的数据。需要注意的是,在添加聚合函数和GROUP BY语句时,SELECT语句中只能包含聚合函数和GROUP BY中指定的列名。如果需要查询其他列数据,需要在HAVING语句中添加条件过滤。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册