Saltar al contenido principal
waffle.svg
Domo

Acciones de ETL (Extracción, transformación y carga): Rango y Ventana

Version 3

 

Importante: Cuando haga referencia a esta página fuera de la Base de conocimientos, use este vínculo: https://knowledge.domo.com?cid=etlactionsrankandwindow

Introducción

La acción Rango y Ventana permite crear nuevas columnas mediante la aplicación de varias funciones de rango y ventana a las columnas. Para todas estas acciones, primero defina la función, después especifique la columna en la que la función establecerá el orden y, por último, indique si los resultados de la nueva columna deben aparecer en orden ascendente o descendente.

Las funciones de rango y ventana se clasifican en tres tipos: Rango, Enmarcado y Desplazamiento.

Para obtener más información sobre todas las funciones descritas en esta sección, consulte http://docs.aws.amazon.com/redshift/...functions.html.

Vídeo de aprendizaje: Funciones Rango y Ventana

 

 

Nota: Los vídeos de aprendizaje sobre productos solo están dirigidos a clientes de Domo.

Descripción de las particiones

Todas las funciones le permiten especificar opcionalmente una columna para usarla como una partición. Por ejemplo, si tuviera una columna de serie denominada "Estado", al seleccionar "Estado" como la partición, los valores de la nueva columna se dividirían por estado. Esto se muestra en el siguiente ejemplo, donde los valores de la columna "Cantidad" siguen un orden descendente y están particionados por estado:
 

 

Observe que las dos cantidades relativas a Connecticut ("CT") aparecen en la primera posición, seguidas de las cinco cantidades de Delaware ("DE"), y así sucesivamente.

Funciones de rango

Las funciones de rango obtienen un número de rango para cada valor de una columna seleccionada y lo muestran en una nueva columna. Hay tres funciones de rango disponibles: Rango, Rango denso y Número de fila.

Rango

La función Rango asigna un número de rango a cada valor de la columna seleccionada. Si algunas celdas de la columna contienen el mismo valor, se les asigna el mismo número de rango y aparece un "vacío" en la numeración en función de cuántos números se hayan omitido. Por ejemplo, si las tres primeras celdas de la columna tuvieran un valor de 100 y la siguiente celda tuviera un valor de 200 y los valores se establecieran para que aparezcan en orden ascendente, a las tres primeras celdas se les asignaría el rango "1" y a la cuarta, el "4".

En la siguiente captura de pantalla se muestra un ejemplo de esto:

rank_and_window_rank.png

Como los tres primeros estados tienen el mismo valor $, todos tienen el rango 1. Por tanto, se omiten los números de rango 2 y 3. Los siguientes cinco estados también tienen el mismo valor y se les asigna el rango 4, y así sucesivamente.

Para configurar una acción Rango:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre a la nueva columna que contendrá los resultados de clasificación (como "Rango").

  5. En el menú Seleccionar tipo de función, seleccione Rango.

  6. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  7. En el paso 2 del cuadro de diálogo, seleccione la columna que desea clasificar. (Se recomienda una columna de valor).

  8. En el paso 3 del cuadro de diálogo, seleccione el orden en que desea que se clasifiquen los valores de la columna.

  9. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

Dense_Rank

La función Dense_Rank es la misma que la función de rango, pero con una notable diferencia. Si algunas celdas de la columna contienen el mismo valor, se les asignará el mismo número de rango, como sucedería con una función "Rango"; sin embargo, la numeración continúa su orden normal en la siguiente celda (es decir, que no aparece ningún "vacío"). Por ejemplo, si las tres primeras celdas de la columna tuvieran un valor de 100 y la siguiente celda tuviera un valor de 200 y los valores se establecieran para que aparezcan en orden ascendente, a las tres primeras celdas se les asignaría el rango "1" y a la cuarta, el "2".

En la siguiente captura de pantalla se muestra un ejemplo de esto:

Como los tres primeros estados tienen el mismo valor $, a todos se les asigna el rango 1. Los cinco estados siguientes también tienen el mismo valor $ y se les asigna el rango 2, y así sucesivamente.

Para configurar una acción Dense_Rank:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre a la nueva columna que contendrá los resultados de clasificación (como "Rango").

  5. En el menú Seleccionar tipo de función, seleccione Dense_Rank.

  6. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  7. En el paso 2 del cuadro de diálogo, seleccione la columna que desea clasificar. (Se recomienda una columna de valor).

  8. En el paso 3 del cuadro de diálogo, seleccione el orden en que desea que se clasifiquen los valores de la columna.

  9. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

Número de fila

La función Número de fila devuelve los números de fila de todos los valores de la columna seleccionada. Tenga en cuenta que, cuando se usan las particiones, las filas adoptan el número de su fila dentro del grupo de particiones, y no necesariamente el número de fila del DataSet. Esto se muestra en la siguiente captura de pantalla, en la que la numeración de las filas derivada de la función Número de fila se reinicia con cada nueva partición. Por tanto, a partir de la fila 4, los números de fila derivados no son los mismos que los números de fila del DataSet.

rank_and_window_row_numbers.png 

Para configurar una acción Números de fila:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre a la nueva columna que contendrá los resultados de clasificación (como "Número de fila").

  5. En el menú Seleccionar tipo de función, seleccione Número de fila.

  6. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  7. En el paso 2 del cuadro de diálogo, seleccione la columna para la que desea obtener los números de fila.

  8. En el paso 3 del cuadro de diálogo, seleccione el orden que desea asignar a los valores de la columna.

  9. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

Funciones de enmarcado

Las funciones de enmarcado usan una función matemática y la aplican a una celda en una columna, junto con un número específico de celdas delante de ella ("Anterior") y después de ella ("Posterior"). Los valores derivados aparecen en una columna nueva. 

En el siguiente ejemplo sencillo se muestra cómo funciona esto. En este ejemplo, el usuario ha seleccionado la función Suma y ha indicado un valor Anterior de 1 y un valor Posterior de 2.

rank_and_window_framing_example.png

En el ejemplo, cada valor de la columna "Valor original" se agrega a una celda que está por encima y a las dos celdas que están por debajo, y el resultado aparece en la misma fila en la columna "Valor derivado". Por tanto, para la fila 5, se agrega 3 a 1 (en la fila 4), 5 (en la fila 6) y 1 (en la fila 7). El total, 10, aparece en la columna "Valor derivado" en la fila 5. Si no hay suficientes valores por encima o por debajo de un valor concreto para incluirlos en el cálculo, sencillamente se omiten. Por ejemplo, para la fila 7 solo hay un valor Posterior, por lo que la ecuación quedaría simplemente como 5 + 1 + 2 = 8.

Cuando se aplican particiones, estas se respetan en las funciones. En el ejemplo siguiente, el usuario ha seleccionado Suma y ha indicado un valor Anterior de 1 y un valor Posterior de 2, como en el ejemplo anterior. Sin embargo, también establece la columna "Clase" como una partición.

Debido a la agrupación de filas que se produce a raíz de la partición, algunos valores se suman de forma distinta. Por ejemplo, en la fila 4, solo se encuentra disponible un valor Posterior, porque la partición separa todos los valores "B" en otro grupo. Por tanto, la ecuación para esta fila sería 2 + 1 + 3 = 6. Del mismo modo, para la fila 6, solo están disponibles los dos valores Posteriores obtenidos de la partición; por tanto, la ecuación quedaría como 5 + 1 + 2 = 8.

Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página.

Promedio

La función Promedio calcula el valor promedio de una celda determinada y sus valores Anterior y Posterior indicados. En el ejemplo siguiente, el usuario ha aplicado la función Promedio a la columna "Cantidad", ha establecido los valores Anterior y Posterior en 2 y ha establecido la columna "Cliente" como partición.

rank_and_window_average.png

Para configurar una acción Promedio:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre para la nueva columna que contendrá los valores derivados. 
    Se recomienda que seleccione un nombre que indique el número de valores Anterior y Posterior, como "Promedio (2A y 2P)".

  5. En el menú Seleccionar tipo de función, seleccione Promedio.
    Aparecen dos menús nuevos después de seleccionar el tipo de función.

  6. En el menú Seleccionar columna, seleccione la columna que contiene los valores de los que se calculará el promedio.

  7. En los campos Anterior y Posterior, escriba el número de los valores anteriores y posteriores que desea incluir en los valores promedio.

  8. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  9. En el paso 2 del cuadro de diálogo, seleccione la columna cuyos valores desea ordenar.

  10. En el paso 3 del cuadro de diálogo, seleccione el orden que desea asignar a los valores de la nueva columna.

  11. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

 

Recuento

La función Recuento calcula el recuento de una celda determinada y sus valores Anterior y Posterior indicados. En el ejemplo siguiente, el usuario ha aplicado la función Recuento a la columna "Cantidad", ha establecido los valores Anterior y Posterior en 2 y ha establecido la columna "Cliente" como partición.

Para configurar una acción Recuento:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre para la nueva columna que contendrá los valores derivados. 
    Se recomienda que seleccione un nombre que indique el número de valores Anterior y Posterior, como "Recuento (2A y 2P)".

  5. En el menú Seleccionar tipo de función, seleccione Recuento.
    Aparecen dos menús nuevos después de seleccionar el tipo de función.

  6. En el menú Seleccionar columna, seleccione la columna que contiene los valores de los que desea obtener un recuento.

  7. En los campos Anterior y Posterior, escriba el número de los valores anteriores y posteriores que desea incluir en los recuentos.

  8. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  9. En el paso 2 del cuadro de diálogo, seleccione la columna cuyos valores desea ordenar.

  10. En el paso 3 del cuadro de diálogo, seleccione el orden que desea asignar a los valores de la nueva columna.

  11. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

Suma

La función Suma calcula la suma de una celda determinada y sus valores Anterior y Posterior indicados. En el ejemplo siguiente, el usuario ha aplicado la función Suma a la columna "Cantidad", ha establecido los valores Anterior y Posterior en 2 y ha establecido la columna "Cliente" como partición.

rank_and_window_sum.png

Para configurar una acción Suma:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre para la nueva columna que contendrá los valores derivados. 
    Se recomienda que seleccione un nombre que indique el número de valores Anterior y Posterior, como "Suma (2A y 2P)".

  5. En el menú Seleccionar tipo de función, seleccione Suma.
    Aparecen dos menús nuevos después de seleccionar el tipo de función.

  6. En el menú Seleccionar columna, seleccione la columna que contiene los valores que se van a sumar.

  7. En los campos Anterior y Posterior, escriba el número de los valores anteriores y posteriores que desea incluir en los totales.

  8. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  9. En el paso 2 del cuadro de diálogo, seleccione la columna cuyos valores desea ordenar.

  10. En el paso 3 del cuadro de diálogo, seleccione el orden que desea asignar a los valores de la nueva columna.

  11. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

Funciones de desplazamiento

Las funciones de desplazamiento agregan una columna nueva al DataSet en la que los valores son los mismos que los que aparecen en la columna seleccionada, pero desplazados por un número específico de filas. Las funciones de desplazamiento se dividen en dos tipos: la función Lag, en la que los valores de la nueva columna se desplazan después de los valores de la columna original, y la función Leaf, en la que los valores de la nueva columna se desplazan antes de los valores de la columna original. En las funciones Lag y Lead, se respetan las particiones. 

Lag

En una función Lag, los valores de la nueva columna siguen a los valores de la columna original después de un desplazamiento específico. En el ejemplo siguiente, se ha aplicado un Lag de 3, y la columna "Cliente" se ha agregado como una partición.

Observe que se ha insertado un desplazamiento de 3 filas entre los valores en la columna "Cantidad" y los valores coincidentes de la columna "Lag". Además, debido a la partición, las filas de la 13 a la 15 son las 3 primeras filas del grupo "Leo, Inc.", de tal forma que las celdas de la columna "Lag" aparecen en blanco.

Para configurar la acción Lag:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre para la nueva columna que contendrá los valores derivados. 
    Se recomienda que seleccione un nombre que indique el valor de desplazamiento del desfase.

  5. En el menú Seleccionar tipo de función, seleccione Lag.
    Aparecen dos menús nuevos después de seleccionar el tipo de función.

  6. En el menú Seleccionar columna, seleccione la columna con los valores que aparecerán en la nueva columna.

  7. En el campo ¿Qué filas deberían incluirse?, escriba el valor de desplazamiento deseado.

  8. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  9. En el paso 2 del cuadro de diálogo, seleccione la columna cuyos valores desea ordenar.

  10. En el paso 3 del cuadro de diálogo, seleccione el orden que desea asignar a los valores de la nueva columna.

  11. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).

Lead

En una función Lead, los valores de la nueva columna anteceden a los valores de la columna original después de un desplazamiento específico. En el ejemplo siguiente, se ha aplicado un Lead de 3, y la columna "Cliente" se ha agregado como una partición.

Observe que se ha insertado un desplazamiento de 3 filas entre los valores en la columna "Cantidad" y los valores coincidentes de la columna "Lead". Además, debido a la partición, las filas de la 17 a la 19 son las 3 primeras filas del grupo "Leo, Inc.", de tal forma que las celdas de la columna "Lead" aparecen en blanco.

Para configurar una acción Lead:

  1. Haga clic en la acción Rango y Ventana en el lienzo.

  2. (Opcional) Para cambiar el nombre de la acción, haga clic en  y, a continuación, escriba el nombre que desee.

  3. Haga clic en Agregar función.

  4. Agregue un nombre para la nueva columna que contendrá los valores derivados. 
    Se recomienda que seleccione un nombre que indique el valor de desplazamiento de la separación por delante.

  5. En el menú Seleccionar tipo de función, seleccione Lead.
    Aparecen dos menús nuevos después de seleccionar el tipo de función.

  6. En el menú Seleccionar columna, seleccione la columna con los valores que aparecerán en la nueva columna.

  7. En el campo ¿Qué filas deberían incluirse?, escriba el valor del desplazamiento.

  8. Haga clic en el botón Aplicar en la esquina superior derecha del cuadro de diálogo.
    Aparecen tres pasos nuevos.

  9. En el paso 2 del cuadro de diálogo, seleccione la columna cuyos valores desea ordenar.

  10. En el paso 3 del cuadro de diálogo, seleccione el orden que desea asignar a los valores de la nueva columna.

  11. (Opcional) En el paso 4 del cuadro de diálogo, seleccione la columna que desea usar como partición, si hay alguna. (Para obtener una explicación de las particiones, consulte Descripción de las particiones en la parte superior de esta página).