Guías de SQL
Guías claras y prácticas para quien se prepara.

CASE WHEN en SQL: condiciones, categorías y agregación condicional
CASE WHEN en SQL: CASE simple y con condiciones, categorías, orden personalizado, manejo de NULL y agregación condicional con SUM, COUNT y FILTER.

Chuleta SQL para analistas de datos: cláusulas y funciones con ejemplos que puedes ejecutar
Chuleta SQL para analistas: de SELECT a ORDER BY, filtros, agregados, JOIN, CASE, NULL, subconsultas, CTE, ventanas, fechas y texto, con ejemplos.

CTE en SQL (cláusula WITH): consultas legibles paso a paso
Cómo usar una CTE (cláusula WITH): sintaxis, encadenar pasos, reutilizar un resultado, CTE recursivas, CTE frente a subconsulta y tabla temporal, y errores.

Cómo encontrar y eliminar duplicados en SQL, con ejemplos
Encuentra duplicados con GROUP BY y HAVING COUNT(*) > 1, conserva la primera copia con ROW_NUMBER o DISTINCT ON y borra el resto en SQL Server y PostgreSQL.

Funciones de agregación en SQL: COUNT, SUM, AVG, MIN y MAX con ejemplos
Funciones de agregación en SQL: COUNT(*), COUNT(DISTINCT), SUM, AVG, MIN y MAX, cómo tratan NULL, GROUP BY, FILTER y trampas que falsean los totales.

Funciones de fecha en SQL: extraer, truncar, sumar intervalos y diferencia entre fechas
Funciones de fecha en SQL: EXTRACT, date_trunc, intervalos y diferencia entre fechas en días o minutos, con ejemplos y diferencias entre PostgreSQL y DuckDB.

Funciones de texto en SQL: CONCAT, SUBSTRING, REPLACE, UPPER, TRIM y más, con ejemplos
Funciones de texto en SQL para limpiar cadenas: CONCAT y ||, SUBSTRING, SPLIT_PART, REPLACE, UPPER, TRIM, LPAD y expresiones regulares, con ejemplos.

GROUP BY y HAVING en SQL: diferencia entre WHERE y HAVING, con ejemplos
Qué hacen GROUP BY y HAVING, en qué se diferencia HAVING de WHERE, en qué orden ejecuta SQL una consulta y errores que falsean los resultados agrupados.

JOIN en SQL: INNER, LEFT, RIGHT, FULL, self join y anti join con ejemplos
Cómo funciona cada JOIN en SQL sobre tablas reales: INNER, LEFT, RIGHT, FULL, self join y anti join, por qué un JOIN duplica filas y cómo evitar sumas infladas.

LAG y LEAD en SQL: fila anterior y siguiente, con ejemplos
LAG devuelve un valor de la fila anterior y LEAD de la siguiente. Desplazamiento y valor por defecto, variación frente al periodo anterior, sesiones y errores.

LIKE en SQL: comodines % y _, ILIKE, NOT LIKE, tildes y caracteres de escape
Cómo buscar texto con LIKE en SQL: comodines % y _, ILIKE, NOT LIKE y NULL, búsquedas sin tildes, escapar % o _, y LIKE frente a = e índices.

NULL en SQL: IS NULL, COALESCE, NULL en JOIN, conteos y comparaciones
Cómo se comporta NULL en SQL: por qué = NULL no encuentra nada, IS NULL e IS DISTINCT FROM, NULL en COUNT y AVG, COALESCE, NULLIF y la trampa de NOT IN.

ORDER BY en SQL: ordenar ASC y DESC, por varias columnas, NULLS LAST y top N
Cómo ordenar con ORDER BY en SQL: ASC y DESC, varias columnas, NULLS FIRST y LAST, alias, CASE, tildes y ñ, top N con LIMIT y empates, y orden aleatorio.

PIVOT en SQL: convertir filas en columnas (y UNPIVOT), con ejemplos
Cómo pasar filas a columnas en SQL: CASE o FILTER en cualquier motor, PIVOT y UNPIVOT en DuckDB y SQL Server, crosstab en PostgreSQL y columnas dinámicas.

ROW_NUMBER, RANK y DENSE_RANK en SQL: diferencias con empates
ROW_NUMBER, RANK y DENSE_RANK solo se diferencian en los empates. Tabla comparativa y cuál usar para top N por grupo, quitar duplicados y el N-ésimo valor.

Cómo ser analista de datos: qué aprender, en qué orden y cuánto se tarda
Ruta realista para ser analista de datos: primero SQL, luego hojas de cálculo, estadística, BI y Python, portafolio y entrevistas, con plazos honestos.

Self join en SQL: unir una tabla consigo misma, con ejemplos
Qué es un self join y cómo se escribe: pares únicos con a < b, vuelos con escala, viajes de ida y vuelta, historiales de versiones y cuándo usar LAG o LEAD.

SQL o Excel para análisis de datos: en qué gana cada uno y cómo dar el salto
SQL o Excel para analizar datos: dónde gana cada uno y cómo BUSCARV, tablas dinámicas, filtros, SI y SUMAR.SI.CONJUNTO pasan a JOIN, GROUP BY, WHERE y CASE.

Subconsultas SQL: subconsultas en WHERE, SELECT y FROM, con ejemplos
Subconsultas SQL en WHERE, SELECT y FROM: escalares y de lista, IN, EXISTS, correlacionadas, tablas derivadas y la trampa de NOT IN con NULL.

UNION y UNION ALL en SQL: diferencia, INTERSECT y EXCEPT con ejemplos
UNION elimina filas duplicadas y UNION ALL las conserva. Cuándo usar cada uno, cómo funcionan INTERSECT y EXCEPT, reglas para combinar consultas y trampas.

Consultas SQL básicas: SELECT, WHERE, ORDER BY, GROUP BY y JOIN paso a paso
SQL para principiantes: consultas básicas paso a paso con ejemplos sobre una base de datos de vuelos, del SELECT al JOIN, y los errores típicos.

Ejercicios SQL resueltos: 15 ejercicios de fácil a difícil con solución
15 ejercicios SQL resueltos sobre una base de datos real de vuelos: de SELECT y WHERE a JOIN, subconsultas y ventanas, con solución, resultado y explicación.

Funciones de ventana SQL: OVER, PARTITION BY, ROW_NUMBER, RANK, LAG y totales acumulados
Funciones de ventana SQL con ejemplos: OVER y PARTITION BY, ROW_NUMBER, RANK y DENSE_RANK, top N por grupo, totales acumulados, LAG y medias móviles.

Preguntas de entrevista SQL para analistas de datos: 15 preguntas con respuesta
Preguntas de entrevista SQL para analista de datos: teoría (JOIN, NULL, HAVING, UNION) y práctica (duplicados, DAU, embudo, rachas) con solución y resultado.