我的学生每年多次参加ACT考试,但我只想要他们最后一次参加ACT考试。
我的表有StudentID,ACTDate(仅限YYYYMM格式)和ACTScore。
如何获得每位学生的最后/最新分数?
我看过Unique,First,Limit ...... - 一切都没有做我想要的!我是一个非常新的SQL(但不是编程),请温柔! :)
我正在使用SQuirrel SQL 3.7 - MySQL,如果重要的话!
答案 0 :(得分:0)
select a.StudentID, a.ACTScore, a.ACTDate
from mytable a
where a.ACTDate = (select max(b.ACTDate)
from mytable b
where a.StudentID = b.StudentID);
答案 1 :(得分:0)
This应该回答你的问题。您只需要为ACT分数更改
答案 2 :(得分:0)
在MSSQL或Oracle中我会这样做:
SELECT
StudentID,
MAX(ACTDate) AS LAST_DATE,
MAX(ACTScore) AS Score
FROM Students
GROUP BY StudentID
所以我们只是根据他们的ID对学生进行分组,我们在向我们显示最新日期的日期使用聚合函数MAX,然后我们在ACTScore上使用另一个聚合函数MAX,以便我们将其包含在选择中
我想在MySQL中应该做类似的事情。如果它(不)有效,请告诉我。