Dev/SQL

2. WITH절 정리한다. 짧다.

zapi 2023. 8. 17. 23:11

이번엔 WITH절이다.

WITH절쿼리 자체를 하나에 별칭으로 선언해서 사용하는 것으로 복잡한 쿼리가 많이 간단해진다.

// 코딩으로 치면 함수 선언 느낌 이랄까? 앞에다 함수 선언해놓고 뒤에서 호출해서 쓰는 느낌으로!

계산한 값을 임시 저장 후 여러 번 사용해서 성능이 향상 됨

WITH
    query1 AS (sub_query),
    query2 AS (sub_query)

SELECT selected_list
FROM table, query1, query2
...

 

예제

WITH
    dept_costs AS(
        SELECT d.department name, SUM(e.salary) AS dept_total
        FROM employee e, department d
        WHERE e.department_id = d.department_id
        GROUP BY d.department_name),
    avg_cost AS(
        SELECT SUM(dept_total)/COUNT(*) AS dept_avg
        FROM dept_costs)

SELECT *
FROM dept_costs
WHERE dept_total > (SELECT dept_abg
                    FROM avg_cost)
ORDER BY department_id;

 

'Dev > SQL' 카테고리의 다른 글

1. 서브 쿼리 간단히 정리한다.  (0) 2023.08.17