Sumas acumuladas con funciones de ventana en SQL
Una función de ventana es similar a una función de agregación, salvo que devuelve un resultado para cada fila del conjunto de datos en lugar de una única fila por grupo.
Puedes hacer agregaciones junto con funciones de ventana. Calcular una suma acumulada con una función de ventana es más sencillo que hacerlo con joins. Además, la consulta puede ejecutarse mucho más rápido.
Se te proporciona una tabla llamada schedule, con las columnas train_id, station, time y diff_min. La columna diff_min indica el tiempo transcurrido entre la estación actual y la siguiente estación de la línea.
Este ejercicio forma parte del curso
Introducción a Spark SQL en Python
Instrucciones del ejercicio
- Ejecuta una consulta que añada una columna adicional a los registros de este conjunto de datos llamada
running_total. La columnarunning_totalhace unSUM()de la diferencia de tiempos entre estaciones indicada en la columnadiff_min. - Ejecuta la consulta y muestra el Resultado de la consulta.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Add col running_total that sums diff_min col in each group
query = """
SELECT train_id, station, time, diff_min,
____(____) OVER (PARTITION BY ____ ORDER BY ____) AS running_total
FROM schedule
"""
# Run the query and display the result
spark.____(query).show()