Função de Banco de Dados Mvsql - Rank()
Resumo
Numera sequencialmente cada linha dentro de um conjunto, ordenada por uma ou mais colunas, começando em 1. Esta função requer o ORDER BY
modificador e também suporta o PARTITION BY
modificador. Se o ORDER BY
não é único dentro do conjunto, as linhas duplicadas são indexadas com a mesma classificação, o próximo índice pulará a lacuna (como colocações em uma competição).
Sintaxe
RANK(ORDER BY <column 1>)
RANK(PARTITION BY <column 2> ORDER BY <column 1>)
Parâmetros
Modificador
Esta função requer o ORDER BY
modificador e suporta o PARTITION BY
modificador.
Coluna 1
Uma referência a uma coluna.
Coluna 2
Uma referência a uma coluna.
Devoluções
Um número sequencial atribuído a cada linha no conjunto de resultados da consultar. Se houver um conflito, ambos os registros recebem o mesmo número de índice, o próximo registro irá ignorá-los (como colocações em um torneio), o que significa que pode haver lacunas entre os índices. ORDER BY
modificador é necessário, e o PARTITION BY
modificador é opcional e também suportado. Dependendo dos modificadores usados na sintaxe, os resultados serão classificados de acordo.
Exemplos
Para os exemplos fornecidos abaixo, assumiremos que os seguintes dados estão disponíveis para consultar:
CustomerId | ContactId | Adicionado em |
---|---|---|
1 | 1 | 01/04/2023 |
1 | 2 | 02/04/2023 |
2 | 3 | 01/04/2023 |
2 | 3 | 03/04/2023 |
-
RANK(ORDER BY AddedOn)
retorna:Classificação CustomerId ContactId Adicionado em 1 1 1 01/04/2023 3 1 2 02/04/2023 1 2 3 01/04/2023 4 2 3 03/04/2023 -
RANK(PARTITION BY CustomerId ORDER BY AddedOn)
retorna:Classificação CustomerId ContactId Adicionado em 1 1 1 01/04/2023 2 1 2 02/04/2023 1 2 3 01/04/2023 2 2 3 03/04/2023 -
RANK(PARTITION BY ContactId, Year(AddedOn) ORDER BY CustomerId, AddedOn)
retorna:Classificação CustomerId ContactId Adicionado em 1 1 1 01/04/2023 1 1 2 02/04/2023 1 2 3 01/04/2023 2 2 3 03/04/2023