• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

3 – Funciones de ventana para realizar análisis comparativos

Lección 3 del curso SQL Nivel Intermedio.

En la lección anterior vimos cómo usar las funciones de ventana SUM(), COUNT(), MAX(), MIN() y AVG() para agregar filas de una tabla de datos.

En esta lección veremos un tercer grupo de funciones de ventana que nos permiten en este caso realizar análisis comparativos y que resultan útiles por ejemplo cuando queremos analizar Series de Tiempo.

Por ejemplo, si tuviésemos una tabla de datos con información sobre las ventas mensuales de cada sucursal de una tienda, nos podría interesar comparar las ventas del mes presente con las del mes anterior o con las del próximo mes y de esta forma extraer información relevante sobre el comportamiento de las ventas para cada tienda.

En este caso debemos hacer uso de funciones de ventana que nos permitan realizar estos análisis comparativos entre filas de nuestra tabla de datos. Así que a continuación veremos las principales funciones que nos permiten llevar a cabo este tipo de consultas.

En particular, esta lección está dividida en dos partes:

  • En la primera parte veremos el principio de funcionamiento de estas funciones de ventana así como ejemplos básicos de uso de las funciones LAG(), LEAD(), FIRST_VALUE(), LAST_VALUE() y NTH_VALUE()
  • Y en la segunda parte veremos ejemplos un poco más avanzados de uso de estas funciones de ventana

Así que comencemos entendiendo el principio básico de funcionamiento de estas funciones de ventana así como algunos sencillos ejemplos de uso:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Muy bien, acabamos de ver que la sintaxis de uso de las funciones LAG(), LEAD(), FIRST_VALUE(), LAST_VALUE() y NTH_VALUE() es la misma de los otros tipos de funciones de ventana que vimos en las dos lecciones anteriores.

Y vimos además que para obtener los resultados esperados al momento de usar las funciones LAST_VALUE() y NTH_VALUE() debemos garantizar que en la consulta estamos incluyendo el rango completo de filas de cada partición, lo cual podemos garantizar usando las sentencias “ROWS BETWEEN”, “UNBOUNDED PRECEDING” y “UNBOUNDED FOLLOWING”.

Así que teniendo claro este principio de funcionamiento y la forma de usar estas funciones, veamos ahora algunos ejemplos más complejos que nos permiten comenzar a observar patrones de comportamiento de una Serie de Tiempo:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

En los ejemplos que acabamos de poner en práctica vimos cómo usar la función LAG() para calcular diferencias entre meses consecutivos en las ventas de cada tienda, así como la forma de implementar el cálculo de medias móviles bimensuales y el etiquetado de los meses en los cuales las ventas superaron considerablemente los montos de los meses anteriores (en este último caso haciendo uso de la sentencia CASE vista en el curso SQL Nivel Básico).

Así que con esto ya hemos completado este primer módulo del curso donde hemos visto diferentes funciones de ventana para el procesamiento de tablas de datos.

En el segundo módulo del curso nos enfocaremos en el concepto de las sub-consultas en SQL. Y específicamente en la próxima lección vamos a entender qué es una sub-consulta en SQL.

Todas las lecciones del curso SQL Nivel Intermedio

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }