私はテーブルを持っています
user problem problem_weight running_time
ユーザーを並べ替えたい
最初にproblem_weight の集計に従って、次に
最大重みの問題の最小 running_timeに従って衝突が発生した場合、
それでも解決しない場合は、acc. 後続するproblem_weightsの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) ですが、user2 は重み 100 の問題 1 をより短い時間で解決しました。したがって、彼に勝ってもらいたいと思います。
彼 (user2) が同じ時間 (10 秒) を費やした場合、次の重み付けされた問題で彼 (user1) がより短い時間 (5 秒) を費やしたため、user1 が勝つはずです。
データはまだ acc でソートされていないことに注意してください。ただし、問題は直接 problem_weight にリンクされています。つまり、problem1 の重みは常に 100 になります。