выбор первых N строк для каждой группы в таблице

Я сталкиваюсь с очень распространенной проблемой, касающейся «Выбор первых N строк для каждой группы в таблице».

Рассмотрим таблицу сid, name, hair_colour, score колонны.

Я хочу, чтобы результат был таким, чтобы для каждого цвета волос я получал имена трех лучших бомбардиров.

Чтобы решить эту проблему, я получил именно то, что мне нужно наБлог Рика Осборна "sql-get-top-n-row-for-a-grouped-query"

Это решение не работает, как ожидалось, когда мои оценки равны.

В приведенном выше примере результат следующим образом.

 id  name  hair  score  ranknum
---------------------------------
 12  Kit    Blonde  10  1
  9  Becca  Blonde  9  2
  8  Katie  Blonde  8  3
  3  Sarah  Brunette 10  1    
  4  Deborah Brunette 9  2 - ------- - - > if
  1  Kim  Brunette 8  3

Рассмотрим строку4 Deborah Brunette 9 2, Если он также имеет тот же счет (10), что и Сара, то ranknum будет 2,2,3 для волос типа "брюнетка".

Какое решение для этого?

Ответы на вопрос(3)

Ваш ответ на вопрос