Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Función de ventana ROW_NUMBER
Determina el número ordinal de la fila actual dentro de un grupo de filas, contando desde 1, según la expresión ORDER BY en la cláusula OVER. Si hay una cláusula opcional PARTITION BY, los números ordinales se restablecen para cada grupo de filas. Las filas con valores iguales para las expresiones ORDER BY reciben los diferentes números de fila de manera no determinística.
Sintaxis
ROW_NUMBER () OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list ] )
Argumentos
- ( )
-
La función no toma argumentos, pero se necesitan los paréntesis vacíos.
- OVER
-
Las cláusulas de ventana para la función ROW_NUMBER.
- PARTITION BY expr_list
-
Opcional. Una o más expresiones que definen la función ROW_NUMBER.
- ORDER BY order_list
-
Opcional. La expresión que define las columnas en que se basan los números de fila. Si no se especifica PARTITION BY, ORDER BY utiliza toda la tabla.
Si ORDER BY no produce una ordenación única o se omite, el orden de las filas no es determinístico. Para obtener más información, consulte Ordenación única de datos para funciones de ventana.
Tipo de retorno
BIGINT
Ejemplos
En el siguiente ejemplo, se particiona la tabla según SELLERID y se ordena cada partición según QTY (en orden ascendiente); luego, se asigna un número a cada fila. Los resultados se ordenan después de que se apliquen los resultados de la función de ventana.
select salesid, sellerid, qty, row_number() over (partition by sellerid order by qty asc) as row from winsales order by 2,4; salesid | sellerid | qty | row ---------+----------+-----+----- 10006 | 1 | 10 | 1 10001 | 1 | 10 | 2 10005 | 1 | 30 | 3 20001 | 2 | 20 | 1 20002 | 2 | 20 | 2 30001 | 3 | 10 | 1 30003 | 3 | 15 | 2 30004 | 3 | 20 | 3 30007 | 3 | 30 | 4 40005 | 4 | 10 | 1 40001 | 4 | 40 | 2 (11 rows)
Para ver una descripción de la tabla WINSALES, consulte Tabla de muestra para ejemplos de funciones de ventana.