我有一年一次參加ACT考試的學生,但我只想要他們最近的ACT成績。如何獲得獨特人的最後記錄ids
我的表格有StudentID,ACTDate(僅YYYYMM格式)和ACTScore。
我怎樣才能得到每個學生的最後/最新成績?
我看了獨特的,第一,限制... - 所有不做我想要的!我是一個非常新的SQL(但不是編程),請溫柔! :)
我正在使用SQuirrel SQL 3.7 - MySQL如果重要!
我有一年一次參加ACT考試的學生,但我只想要他們最近的ACT成績。如何獲得獨特人的最後記錄ids
我的表格有StudentID,ACTDate(僅YYYYMM格式)和ACTScore。
我怎樣才能得到每個學生的最後/最新成績?
我看了獨特的,第一,限制... - 所有不做我想要的!我是一個非常新的SQL(但不是編程),請溫柔! :)
我正在使用SQuirrel SQL 3.7 - MySQL如果重要!
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);
This應該回答你的問題。你只需要改變它爲您的ACT成績
在MSSQL或Oracle,我會做:
SELECT
StudentID,
MAX(ACTDate) AS LAST_DATE,
MAX(ACTScore) AS Score
FROM Students
GROUP BY StudentID
所以我們只是一羣學生通過自己的ID,我們使用一個聚合函數MAX在日期這會告訴我們最新的日期,然後我們在ACTScore上使用另一個聚合函數MAX,以便我們將它包含在選擇中。
我猜應該在MySQL中做類似的事情。讓我知道它是否(不)工作。
由於ids是以增量方式分配的,因此您只需從actscore中選擇max id,並且應該爲您提供插入該表中的最後一行。如果你想更正式,將分數的日期存儲在表格中。 –
http://dev.mysql.com/doc/refman/5.7/en/example-maximum-column-group-row.html – JamieD77