Estou fazendo um sistema de raking. Eu quero obter a linha em um pedido.
Aqui está um violino de banco de dados do meu exemplo completo: https://www.db-fiddle.com/f/3Com2wnrhaqfiTKqJSZtft/0
No exemplo, o UUID usado é 36619b04-4fbe-4ba9-8bd6-aaba7df74bb6
. Como a primeira consulta mostra, deve ser 4. Mas a segunda consulta retorna 2. A +1
consulta é para começar a classificação em 1 em vez de 0. A date_created
coluna é para uma segunda ordem (se for o mesmo valor, verificamos de acordo com a data) . Com este sistema, obriga a ter uma classificação única (não há igualdade).
Na verdade, com a primeira solicitação, obtenho a classificação em meu programa com um simples incremento. Mas, para a segunda consulta, não posso, pois quero o posto de alguém que poderia ser o 12502º.
Como posso consertar isso?
Você pode usar a função de janela ROW_NUMBER .
Considere o seguinte exemplo de dados.
Consulta:
Resultado: