Jul*_*okk 1 mysql group-by max
假设我们有一个如下表
name | userid | score | datestamp |
-----------------------------------------------------
john | 1 | 44 | 2011-06-10 14:25:55
mary | 2 | 59 | 2011-06-10 09:25:51
john | 1 | 38 | 2011-06-10 21:25:15
elvis | 3 | 19 | 2011-06-10 07:25:18
...
marco | 4 | 100 | 2011-03-10 07:25:18
Run Code Online (Sandbox Code Playgroud)
我想在每一天显示每个用户的高分.
所以对于eaxmple,如果玩家约翰在2001-06-10打了十轮我想要显示当天的最佳成绩,以此类推其他球员.
非常感谢你的时间.
SELECT name, MAX(score) AS hiscore, DATE(datestamp) AS sdate
FROM scores
GROUP BY userid, sdate
ORDER BY sdate DESC
Run Code Online (Sandbox Code Playgroud)
但是请注意,您的表格甚至不是第一个正常形式,因为它缺少唯一键.在修复之后,将重复播放器的名称,并且必须在单独的表格中提取第二范式.
规范化设计将有两个表:
player(userid, name)
scores(scoreid, userid, score, datestamp)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4827 次 |
| 最近记录: |