Мне нужна помощь с запросом MySQL. Я пытаюсь ранжировать участников, используя предложение WHERE. Итак, я хотел бы оценивать новичков, промежуточных и опытных отдельно. Например:
Rank Name Grade Type
----------------------------------
1 Bob 98 Novice
2 Jill 88 Novice
3 Jimmy 42 Novice
1 Mark 87 Intermediate
2 Scott 85 Intermediate
3 Jim 77 Intermediate
1 Jane 90 Advanced
2 John 89 Advanced
3 Josh 87 Advanced
Я пробовал:
SET @rank=0;
(SELECT @rank:=@rank+1 AS rank, name, grade, type FROM myTable WHERE type='novice' ORDER BY grade DESC)
UNION ALL
(SELECT @rank:=@rank+1 AS rank, name, grade, type FROM myTable WHERE type='intermediate' ORDER BY grade DESC)
UNION ALL
(SELECT @rank:=@rank+1 AS rank, name, grade, type FROM myTable WHERE type='experienced' ORDER BY grade DESC)
Полагаю, мне нужно как-то изменить ранг. Может быть, у меня есть другая проблема?