Code

Code

The WITH in Oracle, The subquery Factoring.

Oracle에서 사용가능한 WITH 구문은 SQL-99 표준으로 Oracle 9.2 부터 추가되었다. WITH 구문은 임시 테이블을 만들거나 인라인 뷰처럼 동작한다. 같은 구문을 여러번 반복해서 쓰거나 여러곳에서 참조할 경우 아주 유용하다. 쿼리도 상당히 간단해 진다는 장점이 있다.

  SELECT e.ename AS employee_name,         dc.dept_count AS emp_dept_count  FROM   emp e,         (SELECT deptno, COUNT(*) AS dept_count          FROM   emp          GROUP BY deptno) dc  WHERE  e.deptno = dc.deptno;      

WITH dept_count AS (    SELECT deptno, COUNT(*) AS dept_count    FROM   emp    GROUP BY deptno)  SELECT e.ename AS employee_name,         dc.dept_count AS emp_dept_count  FROM   emp e,         dept_count dc  WHERE  e.deptno = dc.deptno;  
Reference: https://oracle-base.com/articles/misc/with-clause