MySQL以最快的速度获得最高分

时间:2015-03-09 06:37:39

标签: mysql datetime

测验结果统计:

UserId StartDate            EndDate              UserScore
1      2015-03-04 14:01:26  2015-03-04 14:02:14  200
2      2015-03-04 14:01:26  2015-03-04 14:02:14  180
3      2015-03-04 13:42:23  2015-03-04 13:43:19  200
4      2015-03-04 13:07:52  2015-03-04 13:08:57  160

StartDate / EndDate的数据类型为datetime。获得时间的单位应在seconds

如何以最快的时间(最短的时间)获取最高的用户分数来完成测验?

1 个答案:

答案 0 :(得分:0)

我们需要处理可能有多个记录具有最快时间(平局)的情况。在这种情况下,我们可以ORDERUserScore降序的结果(即得分最差的结果集),但只保留最高记录:

SELECT TIMESTAMPDIFF(SECOND, StartDate, EndDate)
AS fastest_time
FROM score_table
ORDER BY UserScore DESC, fastest_time ASC LIMIT 3;