Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um banco de dados com os seguintes campos:
E queria fazer um rank pela porcentagem de acertos do usuário. Estou ciente de como selecionar o maior valor (com o select max) mas não sei como selecionar o segundo e o terceiro maior valor para assim fazer um rank.
É só uma ideia teórica, um algoritmo em linguagem corrente aqui, veja se funciona no seu código e se ajuda no que você precisa:
-
Primeiro você faz a seleção do maior valor: select max na tabela tal.
-
Armazena esse valor numa variável "x"
-
Faz então a seleção do segundo maior valor, utilizando um where, tipo: select max na tabela tal onde (where) os valores não sejam "x", ele vai fazer a mesma coisa de antes, mas em vez de fazer em toda a tabela, ele vai ignorar o valor maior, então vai pegar o maior dos valores restantes (o segundo maior).
-
Armazena o valor "y"
-
Faz então a seleção do terceiro maior valor, utilizando um where: select max na tabela tal onde os valores não sejam "x" nem "y".