Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Equivalente do MySQL de ORACLES rank()


Nada diretamente equivalente, mas você pode fingir com algumas (não muito eficientes) autojunções. Alguns exemplos de código de uma coleção de instruções de consulta do MySQL:
SELECT v1.name, v1.votes, COUNT(v2.votes) AS Rank
FROM votes v1
JOIN votes v2 ON v1.votes < v2.votes OR (v1.votes=v2.votes and v1.name = v2.name)
GROUP BY v1.name, v1.votes
ORDER BY v1.votes DESC, v1.name DESC;
+-------+-------+------+
| name  | votes | Rank |
+-------+-------+------+
| Green |    50 |    1 |
| Black |    40 |    2 |
| White |    20 |    3 |
| Brown |    20 |    3 |
| Jones |    15 |    5 |
| Smith |    10 |    6 |
+-------+-------+------+