我有一個表,學生,有以下欄目:分組:如果我不想在列上執行聚合函數,該怎麼辦?
________________________________________________
| id | name | class | date_registrered |
------------------------------------------------
我想選擇一個行對每個唯一的類,只有排在date_registrered最大的價值, 即我要選擇爲每個班級提供最新的註冊學生,包括該課程的所有數據。
我想:
SELECT id, name, class, MAX(date_registrered)
FROM Students
GROUP BY class;
我得到以下錯誤:
Column 'Students.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
This question on SO這不會忽略問題的簡化版本。但是,該示例僅適用於2列。
我只想按類分組,我只想在date_registrered上執行一個聚合函數。我也想顯示所有其他列與每個類的max date_registrered行。
你知道如何解決它嗎?
如果兩個學生每節課*還沒有明確的意義登記在同一天,*最新的註冊學生。至少不是在每個獨特類中返回一行的情況下。 –
時間以毫秒爲單位,所以它的罰款爲 – hellogoodnight
在這種情況下,「date_registered」值得一個更深思熟慮的名字。 –