Função de Banco de Dados Mvsql - DenseRank()
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 continuará consecutivamente, sem lacunas.
Sintaxe
DENSERANK(ORDER BY <column 1>)
DENSERANK(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. Não há lacuna entre os índices com esta função. O 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 |
-
DENSERANK(ORDER BY AddedOn)
retorna:DenseRank CustomerId ContactId Adicionado em 1 1 1 01/04/2023 2 1 2 02/04/2023 1 2 3 01/04/2023 3 2 3 03/04/2023 -
DENSERANK(PARTITION BY CustomerId ORDER BY AddedOn)
retorna:DenseRank 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 -
DENSERANK(PARTITION BY ContactId, Year(AddedOn) ORDER BY CustomerId, AddedOn)
retorna:DenseRank 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