Mysql 如何进行SQL查询排名?
考虑到最佳时间和得分,如何获得最佳排名?假设用户赢了几次,如何计算最佳用户赢了多少次,平均赢的时间是多少Mysql 如何进行SQL查询排名?,mysql,sql,subquery,Mysql,Sql,Subquery,考虑到最佳时间和得分,如何获得最佳排名?假设用户赢了几次,如何计算最佳用户赢了多少次,平均赢的时间是多少 +----------------+----------------+--------+-----------------------+ | user_id | quiz_id | score | finish | +----------------+----------------+--------+---------------
+----------------+----------------+--------+-----------------------+
| user_id | quiz_id | score | finish |
+----------------+----------------+--------+-----------------------+
| 1 | 1 | 1 | 2011-05-18 21:39:00 |
| 2 | 1 | 1 | 2011-05-18 21:43:10 |
| 3 | 1 | 0 | 2011-05-18 21:40:55 |
| 1 | 2 | 1 | 2011-05-18 22:51:57 |
| 2 | 2 | 1 | 2011-05-18 22:21:37 |
| 3 | 2 | 0 | 2011-05-18 22:22:48 |
| 4 | 2 | 1 | 2011-05-18 22:58:14 |
+----------------+----------------+--------+-----------------------+
考虑到最新的完成日期时间,获得最佳分数非常容易 总体
SELECT user_id, quiz_id, score, finish
FROM table
ORDER BY score DESC, finish DESC
LIMIT 1
对于每个测验
SELECT user_id, quiz_id, score, finish
FROM table
GROUP BY quiz_id
ORDER BY score DESC, finish DESC
针对每个用户
SELECT user_id, quiz_id, score, finish
FROM table
GROUP BY user_id
ORDER BY score DESC, finish DESC
我不知道你所说的用户获胜数是什么意思。什么是胜利?平均时间相同;这里没有足够的信息来帮助您回答这两个问题。开始时间在哪里?