如何获取唯一人ID的最后记录

时间:2016-04-11 20:23:39

标签: mysql

我的学生每年多次参加ACT考试,但我只想要他们最后一次参加ACT考试。

我的表有StudentID,ACTDate(仅限YYYYMM格式)和ACTScore。

如何获得每位学生的最后/最新分数?

我看过Unique,First,Limit ...... - 一切都没有做我想要的!我是一个非常新的SQL(但不是编程),请温柔! :)

我正在使用SQuirrel SQL 3.7 - MySQL,如果重要的话!

3 个答案:

答案 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中应该做类似的事情。如果它(不)有效,请告诉我。