2016-04-11 28 views
-1

我有一年一次參加ACT考試的學生,但我只想要他們最近的ACT成績。如何獲得獨特人的最後記錄ids

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

我怎樣才能得到每個學生的最後/最新成績?

我看了獨特的,第一,限制... - 所有不做我想要的!我是一個非常新的SQL(但不是編程),請溫柔! :)

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

+0

由於ids是以增量方式分配的,因此您只需從actscore中選擇max id,並且應該爲您提供插入該表中的最後一行。如果你想更正式,將分數的日期存儲在表格中。 –

+0

http://dev.mysql.com/doc/refman/5.7/en/example-maximum-column-group-row.html – JamieD77

回答

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); 
0

This應該回答你的問題。你只需要改變它爲您的ACT成績

0

在MSSQL或Oracle,我會做:

SELECT 
     StudentID, 
     MAX(ACTDate) AS LAST_DATE, 
     MAX(ACTScore) AS Score 
    FROM Students 
    GROUP BY StudentID 

所以我們只是一羣學生通過自己的ID,我們使用一個聚合函數MAX在日期這會告訴我們最新的日期,然後我們在ACTScore上使用另一個聚合函數MAX,以便我們將它包含在選擇中。

我猜應該在MySQL中做類似的事情。讓我知道它是否(不)工作。