Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

SQL para ciencia de datos, Unidad 5 — Subconsultas y CTEs, 5.2 — CTEs (WITH) ·

Encadenar transformaciones

Encadenar transformaciones con CTEs

Introducción

En la ciencia de datos, a menudo es necesario realizar una serie de transformaciones en los datos para prepararlos adecuadamente antes de aplicar modelos o análisis más complejos. Un método poderoso para lograr esto es mediante el uso de Common Table Expressions (CTEs), también conocidos como subconsultas con alias. CTEs permiten encadenar múltiples transformaciones en una consulta SQL, facilitando la legibilidad y mantenimiento del código.

Explicación principal

Las CTEs son temporales y solo existen durante la ejecución de la consulta que las define. Son ideales para dividir una consulta larga o compleja en partes manejables. Por ejemplo:

WITH 
    Subconsulta1 AS (
        SELECT columna1, columna2
        FROM tabla
        WHERE condición
    ),
    Subconsulta2 AS (
        SELECT columna3, columna4
        FROM Subconsulta1
        WHERE otra_condición
    )
SELECT *
FROM Subconsulta2;

Este ejemplo demuestra cómo podríamos filtrar datos en una subconsulta y luego usar esos resultados para realizar más consultas.

Errores típicos / trampas

  1. CTEs sin alias: Asegúrate de dar un nombre (alias) a cada CTE, como se muestra en el ejemplo anterior.
  2. Confusión entre CTEs y subconsultas inline: Una CTE debe ser usada donde normalmente colocarías una subconsulta inline. Si intentas usarla como una tabla real, obtendrás un error.
  3. Condiciones inesperadas en CTEs: Asegúrate de que las condiciones dentro de tus CTEs no produzcan resultados inesperados o inconsistentes con los datos finales.

Checklist accionable

  1. Dale un nombre claro a cada CTE: Esto facilitará la comprensión del código y su mantenimiento.
  2. Verifica la estructura de los datos en cada nivel: Asegúrate de que las subconsultas devuelvan los datos esperados antes de continuar con la siguiente transformación.
  3. Utiliza alias significativos para columnas: Esto hace más fácil rastrear y entender los datos a medida que se van filtrando o combinando.
  4. Comprueba el rendimiento: Asegúrate de que las CTEs no estén causando un aumento excesivo en la complejidad de la consulta, lo cual podría afectar negativamente el rendimiento.
  5. Valida los resultados intermedios: Siempre es útil verificar los datos intermediarios para asegurarte de que las transformaciones se están realizando correctamente.

Cierre

CTEs son una herramienta valiosa en tu conjunto de herramientas como científico de datos, especialmente cuando tienes múltiples transformaciones a realizar. Sin embargo, es importante estar consciente de los posibles errores y trampas asociados con su uso. Al seguir este checklist, podrás aprovechar al máximo las CTEs para mejorar la claridad y legibilidad de tus consultas SQL.

Siguientes pasos

  • Explicación adicional: Consulta el manual de SQL o la documentación oficial del sistema que uses para obtener más detalles sobre cómo funcionan las CTEs.
  • Práctica: Aplica lo aprendido a un proyecto real, tal vez preparando datos para un modelo de machine learning o generando informes de análisis.
  • Expansión: Explora otros aspectos avanzados de SQL como funciones analíticas y joins complejos para mejorar aún más tus habilidades en la manipulación de datos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).