Factorización de subconsultas
La cláusula WITH, o cláusula de factorización de subconsultas, es parte del estándar SQL-99 y se agregó a la sintaxis SQL de Oracle en Oracle 9.2. La cláusula WITH puede procesarse como una vista en línea o resolverse como una tabla temporal. La ventaja de este último es que las referencias repetidas a la subconsulta pueden ser más eficientes ya que los datos se recuperan fácilmente de la tabla temporal, en lugar de ser consultados por cada referencia. Debe evaluar las implicaciones de rendimiento de la cláusula WITH caso por caso.
Este artículo muestra cómo se puede utilizar la cláusula WITH para reducir la repetición y simplificar declaraciones SQL complejas. No estoy sugiriendo que las siguientes consultas sean la mejor manera de recuperar la información requerida. Simplemente demuestran el uso de la cláusula WITH.
Ver todos los pasos y la explicacion en el articulo original:
https://dbandtech.com/clausula-with-factorizacion-de-subconsultas-en-oracle/
Ejemplo: (ESTA TIENE DOS SUBCONSULTAS EN LA PARTE WITH)
Incluso cuando no hay repetición de SQL, la cláusula WITH puede simplificar consultas complejas, como el siguiente ejemplo que enumera los departamentos con salarios superiores al promedio.
WITH
dept_costs AS (
SELECT dname, SUM(sal) dept_total
FROM emp e, dept d
WHERE e.deptno = d.deptno
GROUP BY dname),
avg_cost AS (
SELECT SUM(dept_total)/COUNT(*) avg
FROM dept_costs)
SELECT *
FROM dept_costs
WHERE dept_total > (SELECT avg FROM avg_cost)
ORDER BY dname;
Fuentes.
Artículo: "Cláusula WITH : Factorización de subconsultas en Oracle" Publicado en https://dbandtech.com/. Consultado el 03/12/2021.
URL: https://dbandtech.com/clausula-with-factorizacion-de-subconsultas-en-oracle/
No hay comentarios:
Publicar un comentario