2016-04-11 22 views
-1

私はACTテストを年に何度も受ける学生がいますが、彼らが取った最後のACTスコアだけが必要です。一意の人物IDの最後のレコードを取得する方法

私のテーブルには、StudentID、ACTDate(YYYYMMフォーマットのみ)、およびACTScoreがあります。

すべての生徒の最新/最新スコアを取得するにはどうすればよいですか?

私は一意で、最初に、限界を見ました... - すべて私がしたいことをしない!私は非常にSQLに新しいですが(プログラミングではありません)、穏やかにしてください! :)

私はSquirrel SQL 3.7 - MySQLを使用しています。

+0

idsがインクリメンタルに割り当てられている場合、actscoreから最大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はあなたの質問にお答えください。あなたはちょうど私がどうなるMSSQLまたはOracleでは、あなたのACTのスコア

0

のためにそれを変更する必要があります:

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

だから私たちはグループそのIDによって、学生とは、我々は、日付の上に集約関数MAXを使用します私たちに最新の日付を表示すると、選択にACTScoreを含めるために、ACTScoreに別の集計関数MAXが使用されます。

私は、MySQLで同様のことを行うべきだと思います。それが働いていれば教えてください。

関連する問題