我有一张得分表:
User / Score 1 / Score 2 / Score 3
Person 1: 10 21 7
Person 2: 21 4 20
Person 3: 1 5 22
我试图将它们分类为最高的个人得分,然后是第二高的个人得分。
我能做的第一部分。
我知道如何ORDER BY GREATEST(score1, score2, score3) DESC
但是我不确定如何设置第二大的二级排序,所以如果它是一个平局,那么它由玩家的第二高分决定。
理想情况下,我的结果将是:
User / Score 1 / Score 2 / Score 3
Person 3: 1 5 22
Person 2: 21 4 20
Person 1: 10 21 7
有没有人有任何想法?
答案 0 :(得分:2)
试试这个:
SELECT User, score1, score2, score3 FROM YourTable
ORDER BY GREATEST(score1, score2, score3) DESC,
(score1 + score2 + score3) - GREATEST(score1, score2, score3) - LEAST(score1, score2, score3) DESC,
LEAST(score1, score2, score3) DESC
ORDER BY
声明的细分:
答案 1 :(得分:0)
试试这个。
SELECT NAME, score1, score2, score3 FROM score
ORDER BY GREATEST(score1, score2, score3) DESC,
(score1+ score2+ score3) - GREATEST(score1, score2, score3) -
LEAST(score1, score2, score3) DESC,
LEAST(score1, score2, score3) DESC;