Função de Banco de Dados Mvsql - RowNumber()
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, cada linha conflitante é indexada sequencialmente de forma não determinística e pode mudar entre as execuções.
Sintaxe
ROWNUMBER(ORDER BY <column 1>)
ROWNUMBER(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. 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 |
-
ROWNUMBER(ORDER BY AddedOn)
retorna:RowNumber CustomerId ContactId AdicionadoEm 1 1 1 01/04/2023 3 1 2 02/04/2023 2 2 3 01/04/2023 4 2 3 03/04/2023 -
ROWNUMBER(PARTITION BY CustomerId ORDER BY AddedOn)
retorna:RowNumber CustomerId ContactId AdicionadoEm 1 1 1 01/04/2023 2 1 2 02/04/2023 1 2 3 01/04/2023 2 2 3 03/04/2023 -
ROWNUMBER(PARTITION BY ContactId, Year(AddedOn) ORDER BY CustomerId, AddedOn)
retorna:RowNumber CustomerId ContactId AdicionadoEm 1 1 1 01/04/2023 1 1 2 02/04/2023 1 2 3 01/04/2023 2 2 3 03/04/2023