domingo, 2 de enero de 2022

La cláusula WITH, o cláusula de factorización de subconsultas (ORACLE)

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