Funciones de Ventana
Las funciones de ventana son una categoría de funciones SQL que realizan cálculos a través de un conjunto de filas relacionadas con la fila actual dentro de una ventana o partición definida.
Se utilizan para realizar cálculos y análisis sobre un subconjunto de filas sin reducir el conjunto de resultados, a diferencia de las funciones de agregación que normalmente reducen la cantidad de filas devueltas por una consulta.
Explicación
Supongamos que tenemos la siguiente tabla Sales
:
Si nuestro objetivo es calcular el ingreso total para cada producto específico y mostrarlo en una columna adicional dentro de la tabla principal en lugar de generar una nueva tabla agrupada, el resultado podría verse de la siguiente manera:
¿Pero cómo podemos hacerlo?
Usar GROUP BY
no es adecuado para esta tarea porque esta cláusula reduce el número de filas agrupándolas según criterios especificados, lo que da como resultado que solo se devuelvan los IDs y sus valores de suma correspondientes.
Por eso, las funciones de ventana son esenciales para abordar este problema.
Implementación
Podemos obtener el resultado requerido utilizando la siguiente consulta:
1234567SELECT sales_id, product_id, sales_date, amount, SUM(amount) OVER (PARTITION BY product_id) AS Total_Revenue_Per_Product FROM Sales;
Una sintaxis general para crear una función de ventana se puede describir de la siguiente manera:
SELECT
aggregation_func() OVER (
PARTITION BY partition_column
ORDER BY order_column
)
FROM
table_name;
- SELECT: Indica que una consulta está a punto de comenzar;
- aggregation_func(): La función de agregación (por ejemplo,
SUM
,AVG
,COUNT
) que realiza un cálculo sobre un conjunto de filas definido por la ventana; - OVER: Palabra clave que introduce la función de ventana;
- PARTITION BY: Divide el conjunto de resultados en particiones según los valores de las columnas especificadas. La función de ventana opera de forma independiente en cada partición;
- partition_column: La columna utilizada para particionar el conjunto de resultados.
- ORDER BY: Especifica el orden de las filas dentro de cada partición;
- order_column: La columna utilizada para ordenar las filas dentro de cada partición.
- FROM: Indica la tabla de origen desde la cual se recuperan los datos;
- table_name: El nombre de la tabla de la que se seleccionan los datos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 4.35
Funciones de Ventana
Desliza para mostrar el menú
Las funciones de ventana son una categoría de funciones SQL que realizan cálculos a través de un conjunto de filas relacionadas con la fila actual dentro de una ventana o partición definida.
Se utilizan para realizar cálculos y análisis sobre un subconjunto de filas sin reducir el conjunto de resultados, a diferencia de las funciones de agregación que normalmente reducen la cantidad de filas devueltas por una consulta.
Explicación
Supongamos que tenemos la siguiente tabla Sales
:
Si nuestro objetivo es calcular el ingreso total para cada producto específico y mostrarlo en una columna adicional dentro de la tabla principal en lugar de generar una nueva tabla agrupada, el resultado podría verse de la siguiente manera:
¿Pero cómo podemos hacerlo?
Usar GROUP BY
no es adecuado para esta tarea porque esta cláusula reduce el número de filas agrupándolas según criterios especificados, lo que da como resultado que solo se devuelvan los IDs y sus valores de suma correspondientes.
Por eso, las funciones de ventana son esenciales para abordar este problema.
Implementación
Podemos obtener el resultado requerido utilizando la siguiente consulta:
1234567SELECT sales_id, product_id, sales_date, amount, SUM(amount) OVER (PARTITION BY product_id) AS Total_Revenue_Per_Product FROM Sales;
Una sintaxis general para crear una función de ventana se puede describir de la siguiente manera:
SELECT
aggregation_func() OVER (
PARTITION BY partition_column
ORDER BY order_column
)
FROM
table_name;
- SELECT: Indica que una consulta está a punto de comenzar;
- aggregation_func(): La función de agregación (por ejemplo,
SUM
,AVG
,COUNT
) que realiza un cálculo sobre un conjunto de filas definido por la ventana; - OVER: Palabra clave que introduce la función de ventana;
- PARTITION BY: Divide el conjunto de resultados en particiones según los valores de las columnas especificadas. La función de ventana opera de forma independiente en cada partición;
- partition_column: La columna utilizada para particionar el conjunto de resultados.
- ORDER BY: Especifica el orden de las filas dentro de cada partición;
- order_column: La columna utilizada para ordenar las filas dentro de cada partición.
- FROM: Indica la tabla de origen desde la cual se recuperan los datos;
- table_name: El nombre de la tabla de la que se seleccionan los datos.
¡Gracias por tus comentarios!