У меня есть следующий запрос SQL из Stack Overflow, и он работает отлично. Это ссылка на исходный ответ .
Я хочу, чтобы нижестоящий запрос выводил ранг в следующем порядке, если есть связь:
1,1,3,4,5,6,6,6,9,10 …. и т. Д.
Это SQL-запрос:
SELECT idno, name, rank,total_score FROM (SELECT *, IF(@marks=(@marks:=total_score), @auto, @auto:=@auto+1) AS rank FROM (SELECT * FROM (SELECT idno, name, SUM(score) AS total_score FROM jbit, (SELECT @auto:=0, @marks:=0) as init GROUP BY name) sub ORDER BY total_score DESC)t) as result WHERE idno ='1'
MySQL может сортировать по значениям даже с привязками, используя стандартный ORDER BY
. Он будет возвращать строки результатов по порядку, как вы упомянули; 1, 1, 3, 4, 5, 6, 6, 6, 9, 10
.
SELECT idno, name, rank, total_score FROM table_name ORDER BY rank;