[SQL ] 如何Group by抓所有人最後一筆資料?

作者: jami520 (我的生命因你而發光)   2019-10-11 05:56:54
資料庫名稱:Mysql
資料庫版本:5.0
內容/問題描述:目前假設有三位學生 A B C (欄位stud)
每天都有路跑分數,如果是這位同學一個月最高分數
則會個別寫入到創高紀錄的資料庫中 (資料庫grade)
那我假設要取出從9月到目前,他們各別最高分數的數值與日期要如何做呢?
直接用下面方式好像都是取靠近09/01的最高分數資料,而非最後面最高分
SELECT stud, num, date FROM grade where date>'2019-09-01' Group by stud
不知道有沒有其他寫法呢? 謝謝
另外再請教一下,如果沒有每天做創高記錄的資料統計
若是用單純每天只是記錄學生的分數
那這樣要直接取出他們各別這一個月內的最高分數與日期
這個能直接寫得出來嗎?
因為這樣就不用再多做一個每天統計是否創高紀錄的寫入
作者: ken218 (ken218)   2019-10-11 14:10:00
用 rank 會比較好,不過我不確定 mysql 有沒有這個 function
作者: springman (司布林)   2019-10-12 11:03:00
可以用 max(date) 嗎?
作者: xdraculax (首席怪叔叔)   2019-10-19 09:03:00
group取最高分 join 分數符合最高分取最大日期

Links booklink

Contact Us: admin [ a t ] ucptt.com