我有一个测验结果表。用户可以为每个类别一遍又一遍地接受它——我需要每个类别的最高分和相应的时间戳。
所以我真的很接近但时间戳字段正在杀死我。
这是一个用户数据:(“score”是带有 %s 的 varchar - 这就是我得到的。也按类别排序,然后是最高分,然后是时间戳。如果我可以为每个完成的类别取第一行。)
catid score timestamp
5 100% 2012-03-22 19:26:41
6 88.89% 2012-06-12 15:20:41
6 77.78% 2012-06-12 15:17:58
7 100% 2012-06-12 16:08:35
7 100% 2012-06-12 16:03:35
7 53.33% 2012-06-12 15:59:44
8 88.89% 2012-06-12 16:13:00
9 83.33% 2012-06-12 16:22:19
10 100% 2012-06-12 17:55:50
10 76.47% 2012-06-12 17:51:54
11 100% 2012-06-12 18:07:12
11 66.67% 2012-06-12 18:05:35
这是我需要的:
catid score timestamp
5 100% 2012-03-22 19:26:41
6 88.89% 2012-06-12 15:20:41
7 100% 2012-06-12 16:08:35
8 88.89% 2012-06-12 16:13:00
9 83.33% 2012-06-12 16:22:19
10 100% 2012-06-12 17:55:50
11 100% 2012-06-12 18:07:12
这是我正在使用的 MySQL:
SELECT catid
, MAX(0 + score)
, `timestamp`
FROM `results`
WHERE userid = 100
GROUP BY catid
ORDER BY catid ASC
, (0 + score) DESC
, timestamp DESC
;
它正在生成的表格:
5 100 2012-03-22 19:26:41
6 88.89 2012-06-12 15:17:58
7 100 2012-06-12 15:59:44
8 88.89 2012-06-12 16:13:00
9 83.33 2012-06-12 16:22:19
10 100 2012-06-12 17:51:54
11 100 2012-06-12 18:05:35
如此接近 - 但时间戳不是与最大值相关联的时间戳。发生了什么事,我该如何解决?
谢谢!