У меня есть таблица с именем myTable, в которой содержится список участников и их оценки в каждом тесте.
-----------------------------------------
id_test id_paticipant score
-----------------------------------------
id_test1 Partcipant1 100
id_test1 Partcipant2 200
id_test1 Partcipant3 150
id_test1 Partcipant4 300
id_test2 Partcipant1 500
id_test2 Partcipant3 250
id_test3 Partcipant2 70
id_test3 Partcipant3 150
id_test3 Partcipant4 420
id_test4 Partcipant1 120
id_test4 Partcipant2 200
Я хочу получить запрос, позволяющий мне получить ранговый столбец, в котором я буду иметьранг каждого участника в каждом тесте, как в таблице ниже.
-----------------------------------------------
id_test id_paticipant score rank
-------------------------------------------------------
id_test1 Partcipant1 100 4
id_test1 Partcipant2 200 2
id_test1 Partcipant3 150 3
id_test1 Partcipant4 300 1
id_test2 Partcipant1 500 1
id_test2 Partcipant3 250 2
id_test3 Partcipant2 70 3
id_test3 Partcipant3 150 2
id_test3 Partcipant4 420 1
id_test4 Partcipant1 120 2
id_test4 Partcipant2 200 1
---------------------------------------------
я пробовал это:
SET @prev_id_test := 0;
SET @curRow := 1;
select t2.id_test, t2.id_partcipant, t2.score
,if(t2.id_test=@prev_id_test, @curRow := @curRow + 1, @curRow := 1) AS rank, @prev_id_test := t2.id_test
from (select myTable.* from myTable order by myTable.id_test, myTable.score desc) as t2
order by t2.id_test, t2.score, t2.id_partcipant desc;
Но это не работает, у меня ранг в порядке убыванияЯ имею в виду, что наименьшее количество баллов имеет ранг 1 и т. Д., Например:
-----------------------------------------------
id_test id_paticipant score rank
-----------------------------------------------
id_test1 Partcipant1 100 1
id_test1 Partcipant2 200 3
id_test1 Partcipant3 150 2
id_test1 Partcipant4 300 4
id_test2 Partcipant1 500 2
id_test2 Partcipant3 250 1
id_test3 Partcipant2 70 1
id_test3 Partcipant3 150 2
id_test3 Partcipant4 420 3
id_test4 Partcipant1 120 1
id_test4 Partcipant2 200 2
---------------------------------------------
Может кто-нибудь помочь, пожалуйста?
Заранее спасибо