如何查询每门课程的最高分?

99ANYc3cd6 课程介绍 1

查询每门课程的最高分

要查询每门课程的最高分,可以使用SQL中的GROUP BY子句结合MAX()聚合函数,以下是几种常见的实现方式:

基本SQL查询

SELECT 
    course_id, 
    course_name, 
    MAX(score) AS highest_score
FROM 
    courses
GROUP BY 
    course_id, course_name;

如果课程信息和学生成绩在不同表中

假设课程信息在courses表中,成绩在scores表中:

如何查询每门课程的最高分?-第1张图片-指南针培训网
SELECT 
    c.course_id, 
    c.course_name, 
    MAX(s.score) AS highest_score
FROM 
    courses c
JOIN 
    scores s ON c.course_id = s.course_id
GROUP BY 
    c.course_id, c.course_name;

按课程名称分组(如果课程ID和名称不是一一对应)

SELECT 
    course_name, 
    MAX(score) AS highest_score
FROM 
    scores
GROUP BY 
    course_name;

包含学生信息(显示获得最高分的学生)

SELECT 
    c.course_id, 
    c.course_name, 
    s.student_id, 
    s.student_name, 
    sc.score AS highest_score
FROM 
    courses c
JOIN 
    scores sc ON c.course_id = sc.course_id
JOIN 
    students s ON sc.student_id = s.student_id
WHERE 
    sc.score = (SELECT MAX(score) FROM scores WHERE course_id = c.course_id)
GROUP BY 
    c.course_id, c.course_name, s.student_id, s.student_name, sc.score;

注意事项

  1. 确保在GROUP BY子句中包含所有非聚合列
  2. 如果有多名学生获得相同最高分,最后一条查询会返回所有这些学生
  3. 根据实际数据库结构调整表名和字段名

查询可以根据您的具体数据库结构进行调整。

如何查询每门课程的最高分?-第2张图片-指南针培训网

标签: 成绩查询 SQL MAX

抱歉,评论功能暂时关闭!