1

我有一张桌子

user problem problem_weight running_time

我想对用户进行排序

首先根据问题权重的总和然后

如果根据具有最大权重的问题的最小运行时间发生冲突,

如果它仍然没有解决然后acc。到后续问题权重的running_times

我可以通过

SELECT user, SUM(problem_weight) AS weight
FROM myTable
GROUP BY user
ORDER BY weight

但之后如何进行?

例子:

User1 problem1 100 10
User1 problem2  80  5
User2 problem1 100  8
User2 problem2  80  7

两个用户的总分相同(180),但用户 2 在更短的时间内以 100 的重量解决了问题 1。所以,我希望他赢。

如果他(user2)花费了相同的时间(10 秒),那么 user1 应该获胜,因为他(user1)在下一个加权问题中花费的时间更少(5 秒)

注释数据尚未按顺序排序。问题权重,但问题与问题权重直接相关,即问题1 的权重始终为100。

4

1 回答 1

0
SELECT user, 
SUM(problem_weight) AS weight 
FROM myTable GROUP BY user 
ORDER BY weight ASC/DESC
                ^include which one u want
于 2012-07-25T17:38:54.280 回答