在MySQL中,取分組后最新的數據是非常常見的需求。例如,我們有一個數據表包含學生姓名、考試科目和成績。現在我們想要得到每個學生最新一次考試的成績。
CREATE TABLE test_scores ( id INT(11) NOT NULL AUTO_INCREMENT, student_name VARCHAR(50) NOT NULL, subject VARCHAR(50) NOT NULL, score INT(11) NOT NULL, exam_date DATETIME NOT NULL, PRIMARY KEY (id) );
首先,我們需要按學生姓名分組,并找出最近一次考試日期。
SELECT student_name, MAX(exam_date) AS last_exam_date FROM test_scores GROUP BY student_name;
然后,我們需要將上述查詢結果與原始數據表連接起來,以得到最新一次考試的成績。
SELECT s.student_name, s.subject, s.score, s.exam_date FROM test_scores s INNER JOIN ( SELECT student_name, MAX(exam_date) AS last_exam_date FROM test_scores GROUP BY student_name ) l ON s.student_name = l.student_name AND s.exam_date = l.last_exam_date;
以上查詢語句將返回每個學生最新一次考試的成績,包括學生姓名、考試科目、成績和考試日期。
上一篇html學號代碼
下一篇python 高德api