Saltar al contenido principal
Workday User Guide
Última actualización: 2023-06-23
ROW_NUMBER

ROW_NUMBER

Descripción

ROW_NUMBER
es una función de agregado de ventanas que divide las filas en grupos, las ordena por un campo y asigna un número secuencial exclusivo a cada fila de un grupo, comenzando por 1 para la primera fila de cada grupo.
ROW_NUMBER
siempre asigna un valor exclusivo a cada fila de un grupo. Es posible que desee utilizar
ROW_NUMBER
para crear un ID exclusivo para cada fila de su conjunto de datos.
El
PARTITION BY
determina qué campos se utilizarán para dividir un conjunto de filas de entrada en grupos.
El
ORDER BY
determina cómo ordenar las filas en la partición antes de que se les asigne un número secuencial.
Workday separa las filas de entrada en grupos según los campos de partición, ordena las filas según los campos de ordenación y, a continuación, calcula la expresión agregada (numeración de filas para esta función) en cada grupo. Las filas numeradas de cada grupo comienzan en 1.

Sintaxis

ROW_NUMBER
()
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]] )

Valor devuelto

Devuelve un valor de tipo
INTEGER
.

Parámetros de entrada

OVER()
Obligatorio
OVER
debe utilizarse en un
ROW_NUMBER
expresión
PARTICIÓN POR
campo_partición
Es obligatorio. Utilizar el
PARTITION BY
para especificar uno o varios campos que se utilizarán para dividir un grupo de filas de entrada. Puede especificar cualquier tipo de campo excepto Moneda. Ejemplo: especifica el campo Mes como campo de partición, por lo que Workday agrupa en una sola partición todos los registros que tienen el mismo valor para Mes.
ORDER BY
ordering_field
Es obligatorio. Utilizar el
ORDER BY
para especificar cómo ordenar las filas de entrada en la partición utilizando los valores del campo especificado dentro de cada partición. Puede especificar cualquier tipo de campo excepto Moneda.
Puede utilizar el
DESC
o
ASC
palabras clave para ordenar en orden descendente (valores de mayor a menor, los valores NULL son los últimos) o ascendente (valores de menor a mayor, los valores NULL son los primeros) para cada campo de ordenación. Si no especifica un criterio de ordenación para un campo de ordenación, Workday ordena automáticamente las filas en orden ascendente.

Ejemplos

Ejemplo: tiene un conjunto de datos con estas filas y campos.
Empleado
Fecha de venta
Ventas
Goh
12/31/2018
140
Goh
11/30/2018
60
Goh
10/31/2018
140
Freeman
12/31/2018
160
Freeman
11/30/2018
60
Freeman
10/31/2018
110
Herrero
12/31/2018
140
Herrero
11/30/2018
60
Herrero
10/31/2018
120
Puede asignar un ID exclusivo a las ventas de cada empleado en orden descendente, de modo que las ventas más altas tengan la clasificación 1. Utilice esta expresión en el campo
Número de ventas por empleado
:
ROW_NUMBER() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
Obtiene los siguientes resultados:
Empleado
Fecha de venta
Ventas
Número de ventas por empleado
Goh
12/31/2018
140
1
Goh
10/31/2018
140
2
Goh
11/30/2018
60
3
Freeman
12/31/2018
160
1
Freeman
10/31/2018
110
2
Freeman
11/30/2018
60
3
Herrero
12/31/2018
140
1
Herrero
10/31/2018
120
2
Herrero
11/30/2018
60
3
También puede asignar un ID exclusivo a las ventas de cada fecha en orden descendente, de modo que las ventas más altas reciban la clasificación 1. Utilice esta expresión en el campo
Sales Num by Date
:
ROW_NUMBER() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
Obtiene los siguientes resultados:
Empleado
Fecha de venta
Ventas
Núm. de ventas por fecha
Freeman
12/31/2018
160
1
Goh
12/31/2018
140
2
Herrero
12/31/2018
140
3
Goh
11/30/2018
60
1
Freeman
11/30/2018
60
2
Herrero
11/30/2018
60
3
Goh
10/31/2018
140
1
Herrero
10/31/2018
120
2
Freeman
10/31/2018
110
3
También puede utilizar
ROW_NUMBER
para determinar la última versión de cada fila de un conjunto de datos que contiene varias filas por ID. En esta situación hipotética, el conjunto de datos requiere un campo de fecha que represente cuándo se actualizó la información de esa fila. Si está familiarizado con los conceptos de almacenamiento de datos, esta es una tabla de dimensiones de tipo 2 que cambia lentamente. Tiene un conjunto de datos con estas filas y campos.
ID
Nombre
Región
Fecha efectiva
G1
Gorman
Oeste
01/01/2015
H1
Harris
Oeste
01/01/2015
G1
Gorman
Este
09/01/2016
H1
Harris
Este
01/03/2017
H1
Harris
Nacional
01/20/2021
Para asignar el valor 1 a la última versión de cada ID, utilice esta expresión en el campo
Última versión
:
ROW_NUMBER() OVER( PARTITION BY [ID] ORDER BY [Effective Date] DESC)
Obtiene los siguientes resultados:
ID
Nombre
Región
Fecha efectiva
Última versión
G1
Gorman
Oeste
01/01/2015
2
H1
Harris
Oeste
01/01/2015
3
G1
Gorman
Este
09/01/2016
1
H1
Harris
Este
01/03/2017
2
H1
Harris
Nacional
01/20/2021
1
Puede filtrar por
Última versión
mediante una fase de filtro para mostrar solo la última fila de cada ID.