La cláusula 'WITH' en SQL, también conocida como Common Table Expressions (CTEs), es una herramienta muy útil que permite definir un bloque de subconsulta temporal que se puede utilizar en una declaración SELECT, INSERT, UPDATE, DELETE o CREATE VIEW. La principal ventaja de usar una cláusula 'WITH' es que aumenta la legibilidad y claridad de las consultas SQL complejas, particularmente cuando se usan subconsultas.
Veamos un ejemplo sencillo para entender cómo funciona:
WITH ventas_totales AS (
SELECT id_empleado, SUM(monto) AS total_ventas
FROM ventas
GROUP BY id_empleado
)
SELECT e.nombre, vt.total_ventas
FROM empleados e
JOIN ventas_totales vt ON e.id = vt.id_empleado;
En este ejemplo, primero usamos la cláusula 'WITH' para definir una subconsulta que calcula las ventas totales por empleado. Luego, usamos esa subconsulta en nuestra consulta principal para obtener los nombres de los empleados junto con sus ventas totales.
Además de aumentar la legibilidad, las CTEs también pueden ser referenciadas múltiples veces en una misma consulta, evitando así la necesidad de escribir la misma subconsulta varias veces.
En resumen, el propósito de la cláusula 'WITH' en SQL es proporcionar una forma de escribir consultas más organizadas y legibles, especialmente cuando se trata de consultas complejas con subconsultas. También mejora el rendimiento de la consulta al permitir reutilizar el mismo conjunto de resultados en diferentes partes de la consulta.