Asignar números de fila

Funciones de ventana en Snowflake

Jake Roach

Field Data Engineer

Funciones de ventana

Se usa para realizar un cálculo en una "ventana" de filas y devolver un valor para cada fila

$$

$$

Ranking

  • RANK, DENSE_RANK
  • FIRST_VALUE, LAST_VALUE, NTH_VALUE
  • LAG, LEAD

Agregación

  • COUNT, SUM, AVG
Funciones de ventana en Snowflake

Funciones de ventana

¡Las funciones de ventana nos ayudan a responder nuevos tipos de preguntas!

$$

  • ¿Cuál es el tercer concierto más popular en cada lugar?
  • ¿Cómo variaron las ventas de un artículo día a día?
  • ¿Mi promedio móvil de audiencia está subiendo o bajando?
Funciones de ventana en Snowflake

Funciones tradicionales

La función de agregación tradicional debe tener una cláusula GROUP BY.

Una representación visual de una función de agregación.

Funciones de ventana en Snowflake

Funciones de ventana

Una representación visual del resultado de una función de ventana.

                                                 ¡No requieren GROUP BY!

Funciones de ventana en Snowflake

Asignar números de fila

SELECT
    <other-fields>,

    ROW_NUMBER() OVER(
        ORDER BY <field>
    ) AS <alias>

FROM SCHEMA.table

...;

La función ROW_NUMBER() asigna un número de fila a cada registro en un conjunto de resultados

$$

  • OVER() define la ventana
  • Alias para la columna resultante
  • ¡Sin GROUP BY!
Funciones de ventana en Snowflake

Asistencia a conciertos

SELECT
    customer_id,
    event_name,

    -- Asigna un número de fila a cada 
    -- registro en el conjunto de resultados

    ROW_NUMBER() OVER(
        ORDER BY time_spent_minutes
    ) AS row_num

FROM concerts.attendance;
  customer_id  |  event_name  |  row_num  
 ------------- | ------------ | ---------
     1931292   |  Music Fest  |    1    
     5462384   |  Elton John  |    2    
     7732891   |  Coachella   |    3    
     3124888   |  Porch Fest  |    4

$$

$$

Recuerda la sintaxis: ROW_NUMBER() OVER( ORDER BY ...)!

Funciones de ventana en Snowflake

¡Vamos a practicar!

Funciones de ventana en Snowflake

Preparing Video For Download...