Analítica y reportes
24 pasos en 5 series de SQL.
Las herramientas para preguntas que no caben en una sola consulta plana. Subconsultas, luego expresiones de tabla comunes, incluidas las recursivas, y después funciones de ventana.
Las funciones de ventana son la pieza central y lo que la mayoría aprende al final y desearía haber aprendido primero: rankings, totales acumulados, lag y lead, y frames. Veinticuatro pasos.
Subconsultas
- Subconsulta en WHEREUna subconsulta calcula la lista de valores contra la que compara el filtro externo.
- Subconsulta escalarUna subconsulta que devuelve un solo valor puede ocupar el lugar de una columna o constante.
- EXISTS y NOT EXISTSEXISTS pregunta si existe alguna fila que coincida, y se detiene en la primera.
Expresiones de tabla comunes
- Expresión de tabla comúnWITH nombra un resultado por adelantado para que la consulta principal se lea como prosa.
- CTE encadenadasVarias CTE separadas por comas, cada una libre de construir sobre la anterior.
- CTE recursivaUna CTE recursiva recorre una jerarquía o genera una secuencia.
Funciones de ventana
- Ranking dentro de una particiónLas funciones de ventana clasifican filas sin colapsarlas en grupos.
- RANK, DENSE_RANK, ROW_NUMBERTres maneras de numerar filas, y discrepan exactamente cuando hay un empate.
- Totales acumuladosUna ventana ordenada convierte una columna de montos en una curva acumulada.
- LAG y LEADLAG mira una fila atrás y LEAD una adelante — tasas de crecimiento sin self join.
- Frames de ventanaEl frame decide qué filas puede ver la función de ventana desde donde está parada.
- Nombrar una ventanaRepetir la misma cláusula OVER cuatro veces es como se cuela un error de tipeo.
- FIRST_VALUE y LAST_VALUEAlcanzar los bordes de una partición sin una segunda consulta.
- Segmentos con NTILENTILE reparte filas ordenadas en segmentos de igual tamaño — cuartiles, deciles, cohortes.
- Dónde cae una fila en la distribuciónNo el rango sino la fracción: ¿cuánta tabla queda detrás de esta fila?
Expresiones
- Expresiones CASECASE es el condicional de SQL: gana la primera rama que coincide.
- COALESCE y NULLIFDos herramientas para datos faltantes: tomar el primer no NULL, o volver NULL un valor.
- FILTER dentro de un agregadoUna sola pasada por la tabla, varios conteos con filtros distintos.
- Trabajar con textoLa caja de herramientas de cadenas: medir, cortar, buscar, reemplazar, limpiar.
- Números y redondeoRedondear es una decisión, así que hazla explícita.
- Fechas y horasTruncar, formatear y desplazar timestamps para agrupar por periodo.
- Aritmética de fechasEn SQLite las fechas son texto, y los modificadores hacen el trabajo de calendario por ti.
Bis
- cohort_report.sqlCohortes de registro y la proporción de cada una que sigue comprando meses después.
- revenue_dashboard.sqlMes contra mes, acumulado del año, y la parte de cada mes frente al mejor mes hasta ahí.