Saltar al contenido

Función de Base de Datos Mvsql: RowNumber()

Resumen

Numera secuencialmente cada fila dentro de un conjunto, ordenada por una o más columnas, comenzando en 1. Esta función requiere la ORDER BYmodificador y también admite el PARTITION BYmodificador. Si el ORDER BYno es única dentro del conjunto, cada fila conflictiva se indexa secuencialmente de manera no determinista y puede cambiar entre ejecuciones.

Sintaxis

ROWNUMBER(ORDER BY <column 1>) ROWNUMBER(PARTITION BY <column 2> ORDER BY <column 1>)

Parámetros

Modificador

Esta función requiere el ORDER BYmodificador y admite el PARTITION BYmodificador.

Columna 1

Una referencia a una columna.

Columna 2

Una referencia a una columna.

Devoluciones

Un número secuencial asignado a cada fila en el conjunto de resultados de la consultar. ORDER BYSe requiere el modificador y el PARTITION BYEl modificador es opcional y también se admite. Según los modificadores utilizados en la sintaxis, los resultados se ordenarán en consecuencia.

Ejemplos

Para los ejemplos que se ofrecen a continuación, asumiremos que los siguientes datos están disponibles para consultar:

CustomerId ContactId Añadido
1 1 2023-04-01
1 2 2023-04-02
2 3 2023-04-01
2 3 2023-04-03
  1. ROWNUMBER(ORDER BY AddedOn)devuelve:

    Número de fila Id. de cliente Id. de contacto Añadido el
    1 1 1 2023-04-01
    3 1 2 2023-04-02
    2 2 3 2023-04-01
    4 2 3 2023-04-03
  2. ROWNUMBER(PARTITION BY CustomerId ORDER BY AddedOn)devuelve:

    Número de fila Id. de cliente Id. de contacto Añadido el
    1 1 1 2023-04-01
    2 1 2 2023-04-02
    1 2 3 2023-04-01
    2 2 3 2023-04-03
  3. ROWNUMBER(PARTITION BY ContactId, Year(AddedOn) ORDER BY CustomerId, AddedOn)devuelve:

    Número de fila Id. de cliente Id. de contacto Añadido el
    1 1 1 2023-04-01
    1 1 2 2023-04-02
    1 2 3 2023-04-01
    2 2 3 2023-04-03