[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