Cláusula SOBRE SQL

Clausula Sobre Sql



Una de las características más avanzadas de SQL es la cláusula OVER. Es una característica que nos permite realizar cálculos y aplicar las funciones de la ventana SQL sobre un subconjunto específico de filas dentro de un conjunto de resultados determinado.

Es particularmente útil cuando necesita calcular las agregaciones o clasificaciones de grupos de filas sin colapsar todo el conjunto de resultados.

Únase a nosotros en este tutorial mientras aprendemos todo lo que hay que saber para comenzar a trabajar con la cláusula OVER.







Requisitos:

Antes de profundizar en la funcionalidad y el funcionamiento de la cláusula OVER, asegúrese de tener los conceptos básicos de SQL. También asumimos que tiene acceso a una base de datos que puede utilizar para poner a prueba sus conocimientos.



En nuestro caso, usaremos la base de datos MySQL con la base de datos de muestra Sakila. Solo asegúrese de tener permisos suficientes y de que el motor de su base de datos admita las funciones de la ventana.



Sintaxis:

Como mencionamos anteriormente, en la mayoría de los casos utilizamos principalmente la cláusula OVER junto con las funciones de ventana.





Como tal, podemos expresar la sintaxis de la cláusula de la siguiente manera:

(expresión) OVER (

[PARTICIÓN POR expresión_partición, ...]
 
[ORDENAR POR expresión_clasificación [ASC | DESC], ...]

[especificación_marco]

)

En la sintaxis dada, podemos desglosar cada componente de la siguiente manera:



  1. – Se refiere a la función de ventana que deseamos aplicar sobre una ventana específica de filas como SUM(), AVG(), ROW_NUMBER(), RANK, etc.
  2. Expresión: especifica una columna o expresión para la que se aplica la función de ventana.
  3. PARTICIÓN POR: esta es una cláusula opcional que divide el conjunto de resultados en particiones donde cada partición es como una unidad separada donde se aplica la función. Las filas dentro de la misma partición comparten los mismos valores en las columnas especificadas.
  4. ORDENAR POR: especifica el orden en el que se procesan las filas de cada partición.
  5. frame_specification: esta es una cláusula opcional que define el marco de filas dentro de la partición. Las especificaciones de marco comunes incluyen FILAS ENTRE Y o RANGO ENTRE Y

Dejando eso de lado, exploremos algunos ejemplos prácticos sobre cómo usarlo.

Ejemplo:

Demostremos cómo usar la cláusula usando la base de datos de muestra de Sakila. Considere un ejemplo en el que necesitamos determinar los ingresos totales de cada categoría de película.

Podemos usar la función de ventana de suma con la cláusula OVER y un montón de declaraciones de unión como se muestra en el siguiente ejemplo:

SELECCIONAR
categoría.nombre AS nombre_categoría,
película.título AS película_título,
película.tasa_alquiler,
SUMA(pago.monto) SOBRE (PARTICIÓN POR categoría.nombre) COMO ingresos_totales
DE
película
UNIRSE
categoría_película ACTIVADA
película.film_id = categoría_película.film_id
UNIRSE
categoría ENCENDIDO
film_category.category_id = categoría.category_id
UNIRSE
inventario activado
película.film_id = inventario.film_id
UNIRSE
alquiler en
inventario.inventario_id = alquiler.inventario_id
UNIRSE
pago activado
alquiler.rental_id = pago.rental_id
ORDENAR POR
    category.name,
título de la película;

En la consulta dada, comenzamos seleccionando el título de la película, la tarifa de alquiler y usamos la expresión suma (pago.monto sobre la partición por categoría.nombre) para determinar la suma de cada partición de categoría por el nombre de la categoría.

Debemos utilizar la cláusula PARTITION BY para garantizar que el cálculo de la suma se reinicie en cada categoría única.

El resultado resultante es el siguiente:

¡Ahí tienes!

Conclusión

En este ejemplo, exploramos los fundamentos del trabajo con la cláusula OVER en SQL. Esta no es una cláusula básica y requiere familiaridad previa con otras características de SQL.