Calcular clasificaciones, acumulados y comparaciones entre filas con funciones de ventana
Definir particiones, orden y marcos de ventana controlando exactamente qué filas entran en el cálculo
Encadenar expresiones comunes de tabla para descomponer consultas analíticas extensas
Recorrer jerarquías y grafos con expresiones comunes recursivas evitando ciclos infinitos
Sustituir bucles de código de aplicación por una consulta conjunta y medir la diferencia
Producir subtotales y agregaciones múltiples con GROUPING SETS, ROLLUP y CUBE
Leer el plan de ejecución con EXPLAIN ANALYZE y decidir el índice que hace falta
Contenido del curso
7 módulos · 30 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Presentación y punto de partida4 clases
Cuándo la consulta debe hacer el trabajo y cuándo la aplicación
El conjunto de datos de prácticas y su volumen
Entorno en JupyterLab contra PostgreSQL
Medir una consulta antes de optimizarla
Módulo 2 · Funciones de ventana5 clases
Qué es una ventana y en qué se diferencia de GROUP BY
PARTITION BY y ORDER BY dentro de la ventana
Clasificaciones: ROW_NUMBER, RANK y DENSE_RANK
Acceso a otras filas con LAG y LEAD
Primer y último valor de una partición
Módulo 3 · Marcos de ventana4 clases
Marcos por filas y por rango
Acumulados y medias móviles
Ventanas con nombre y reutilización
Errores frecuentes al definir el marco
Módulo 4 · Expresiones comunes de tabla4 clases
Dividir una consulta larga en pasos legibles
Encadenar varias expresiones comunes
Materialización y su efecto en el plan
Expresiones comunes con modificación de datos
Módulo 5 · Recursividad4 clases
Estructura de una expresión común recursiva
Recorrer jerarquías de organización o de materiales
Rutas en un grafo y detección de ciclos
Límites de profundidad y control de coste
Módulo 6 · Agregación avanzada5 clases
GROUPING SETS para varias agrupaciones a la vez
ROLLUP y subtotales jerárquicos
CUBE y combinaciones completas
Agregados con filtro y agregados ordenados
Tablas dinámicas con expresiones condicionales
Módulo 7 · Rendimiento y caso práctico4 clases
Leer un plan con EXPLAIN ANALYZE
Índices que ayudan a una consulta analítica
Comparación medida frente al bucle en la aplicación
Caso práctico: cuadro de mando resuelto solo con consultas
Requisitos
SQL sólido: uniones, agregaciones, subconsultas y modificación de datos
Comprender el modelo relacional y el papel de los índices
Basta con un navegador: se trabaja en JupyterLab contra una base PostgreSQL de prácticas
Descripción
Hay un patrón que se repite en muchos equipos: la consulta devuelve filas, la aplicación las recorre en un bucle, calcula acumulados o compara cada fila con la anterior, y el proceso tarda minutos. Ese trabajo casi siempre lo hace el motor mejor, en una sola pasada, con funciones de ventana que muchos desarrolladores no llegaron a aprender.
El curso trabaja sobre un conjunto de datos con volumen suficiente para que las diferencias se noten. Cada técnica se presenta resolviendo un caso analítico real, se compara con la solución equivalente en código de aplicación y se mide el resultado. Se cubren ventanas con sus marcos, expresiones comunes encadenadas y recursivas, agregaciones múltiples y lectura de planes con EXPLAIN ANALYZE.
El resultado es la capacidad de escribir consultas que sustituyen cientos de líneas de proceso y de justificar su coste con datos del plan de ejecución. Es directamente aplicable a informes de negocio, análisis de series temporales de proceso industrial y cuadros de mando, y enlaza con administración y rendimiento de PostgreSQL.
¿Para quién es este curso?
Perfiles de desarrollo que procesan datos en bucles de aplicación y quieren delegar el cálculo al motor
Ingeniería que analiza series temporales de proceso y necesita acumulados y comparaciones entre registros
Personas de empresa responsables de informes que hoy se elaboran a mano en hojas de cálculo
Bajo demanda
Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.