在MySQL中,我們經常需要查詢出某一門課程或某一學生的成績總和。要求求出某一門課程或全校(所有課程)中成績總和最高的情況,可以通過以下方式實現。
-- 求某一門課程的總成績最高 SELECT SUM(score) AS total_score, student_name FROM course_score WHERE course_name = '數學' GROUP BY student_name ORDER BY total_score DESC LIMIT 1; -- 求全校總成績最高的學生 SELECT SUM(score) AS total_score, student_name FROM course_score GROUP BY student_name ORDER BY total_score DESC LIMIT 1;
以上代碼均是使用SELECT語句實現的。第一條語句通過WHERE子句篩選出課程名為“數學”的成績,按學生名分組后,通過SUM函數求出該學生的總成績,并按總成績倒序排列,取出總成績最高的一項。
第二條語句沒有使用WHERE子句,直接求出所有學生的總成績,并按學生名分組,按總成績倒序排列,取出總成績最高的一項。
在實現上述功能成績計算時,需要注意以下幾點:
1、如果涉及多個數據表,需要先使用JOIN語句將其關聯。
2、使用GROUP BY子句進行分組時,需要將除聚合函數之外的所有字段都列在GROUP BY子句中,以保證正確性。
3、使用LIMIT關鍵字可以限制輸出結果的數量。在查找最小值、最大值等情況下,可以取得最大或最小值所在的行。但在查找前幾行或跳過前幾行時,也可以使用LIMIT實現。
上一篇淘寶表格css