selecionando N linhas principais para cada grupo em uma tabela
Estou enfrentando um problema muito comum em relação à "Seleção das N linhas principais para cada grupo em uma tabela".
Considere uma tabela comid, name, hair_colour, score
colunas.
Quero um conjunto de resultados para que, para cada cor de cabelo, consiga três nomes de artilheiros.
Para resolver isso, eu tenho exatamente o que eu precisoArtigo de Rick Osborne no blog "sql-obtendo-top-n-linhas-para-uma-consulta-agrupada"
Essa solução não funciona como esperado quando minhas pontuações são iguais.
No exemplo acima, o resultado é o seguinte.
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
Considere a linha4 Deborah Brunette 9 2
. Se isso também tiver a mesma pontuação (10) que Sarah, o ranknum será 2,2,3 para o cabelo "Morena".
Qual a solução para isso?