Expresiones de Tablas Comunes (CTE) en SQL
Clase 31 de 36 • Curso de Bases de Datos con SQL
Resumen
¿Qué es el proceso de transformación de datos?
En el mundo de la manipulación de datos, las siglas ETR (extracción, transformación y carga) y ELT (extracción, carga y transformación) son fundamentales. Dentro de estos procesos, la transformación de datos juega un papel crucial. Se trata del paso donde limpiamos, depuramos y aplicamos reglas de negocio a los datos, generando indicadores y estadísticas conforme a las necesidades de la información. Sin embargo, este proceso puede complicarse ya que nuestras consultas se vuelven avanzadas, abarcando múltiples tablas y utilizando complejas funciones matemáticas y algorítmicas.
¿Qué son las CTE en SQL?
Las CTE (Common Table Expressions) en SQL son una herramienta valiosa para mejorar la legibilidad y mantenimiento del código, facilitando el desarrollo y entendimiento del negocio. Las CTE permiten dividir una consulta de alto nivel en subconsultas más fáciles de comprender. Estas subconsultas luego se pueden relacionar en una consulta principal.
¿Cómo se estructura una CTE?
Crear una CTE en SQL es sencillo. La sintaxis básica se inicia con la palabra reservada WITH
, seguida de un nombre claro que refiera al proceso de negocio que representa la consulta. Este nombre es fundamental para la claridad y funcionalidad del código.
WITH nombre_de_la_cte AS (
-- Aquí se coloca la subconsulta
)
SELECT * FROM nombre_de_la_cte;
Buenas prácticas al nombrar una CTE
- Claridad: El nombre debe hacer clara referencia al proceso de negocio que aborda.
- Funcionalidad: Ayuda a otros desarrolladores a entender la finalidad de la CTE.
¿Cómo se usan las CTE con múltiples subconsultas?
Las CTE pueden contener una o varias subconsultas. En el caso de múltiples subconsultas, pueden relacionarse entre sí mediante JOIN
, INNER JOIN
, LEFT JOIN
, RIGHT JOIN
y otras herramientas que hemos aprendido en SQL.
Ejemplo práctico de CTE
Imaginemos que queremos calcular el salario promedio de los empleados y aplicar un condicionante a los resultados. Aquí, la CTE nos permitiría:
-
Calcular el salario promedio en una subconsulta.
-
Usar la consulta principal para filtrar estos resultados según criterios específicos, por ejemplo, aquellos cuyos salarios superen un valor determinado.
WITH promedio_salarios AS ( SELECT departamento_id, AVG(salario) AS promedio_salario FROM empleados GROUP BY departamento_id ) SELECT * FROM promedio_salarios WHERE promedio_salario > 65000;
Retos y consideraciones
Al usar CTE, es importante recordar que:
- Puedes referenciar múltiples subconsultas dentro de la consulta principal.
- Cada subconsulta puede depender de otras creando relaciones complejas.
- Misturas de distintas operaciones SQL como agrupamientos y joins enriquecen las consultas.
¿Cómo enriquecer nuestras consultas usando CTE?
Además de simplificar nuestro código, el uso de CTE fomenta la experimentación con nuevas consultas combinando diversas subconsultas. Se invita a la comunidad de desarrolladores a interactuar con estas herramientas, creando consultas avanzadas y compartiendo sus soluciones para el enriquecimiento mutuo.
Las CTE representan un método eficiente y eficaz para trabajar con datos complejos en SQL, mejorando la claridad, el mantenimiento y el proceso de desarrollo en general. ¡Anímate a poner en práctica tus conocimientos y crea consultas innovadoras!