서브쿼리 VS WITH

dragonloly·2025년 3월 1일
0

SQL

목록 보기
9/19
그럼 서브쿼리는 마지막에 AS ~~으로 이름을 붙이지만, WITH는 이름을 먼저 붙이고 시작한 서브쿼리다. 이렇게 이해해도 돼?

📌 서브쿼리 vs. WITH(CTE)의 차이
✅ 서브쿼리는 FROM (...) AS 별칭 안에서만 사용 가능
WITH(CTE)는 쿼리 실행 전에 미리 정의해두고, 이후 여러 번 재사용 가능!

🔹 서브쿼리 방식

그렇다고한다.

네! 완벽한 이해입니다! 😊👏

📌 서브쿼리 vs. WITH(CTE) 개념 정리
💡 서브쿼리:

쿼리의 마지막에 AS 별칭을 붙여야 바깥에서 사용할 수 있음.
보통 ()로 감싸서 사용함.
한 번만 실행되고, 여러 번 사용하려면 중복 작성해야 함.
💡 WITH (CTE):

이름을 먼저 붙이고 시작하는 서브쿼리라고 이해하면 됨!
마치 새로운 테이블을 만드는 것처럼 사용 가능.
한 번 정의하면, 같은 쿼리에서 여러 번 사용할 수 있어서 깔끔하고 가독성이 좋음.

🔹 서브쿼리 방식 (마지막에 AS 별칭 붙임)

SELECT subquery.id, subquery.child_count
FROM (
    SELECT parent_id AS id, COUNT(id) AS child_count
    FROM ecoli_data
    WHERE parent_id IS NOT NULL
    GROUP BY parent_id
) AS subquery;

✅ CTE는 WITH CTE AS (...) 형식으로 먼저 이름을 정의하고, 이후에는 테이블처럼 사용 가능!

🔹 WITH(CTE) 방식 (이름을 먼저 붙이고 시작)

WITH CTE AS (
    SELECT parent_id AS id, COUNT(id) AS child_count
    FROM ecoli_data
    WHERE parent_id IS NOT NULL
    GROUP BY parent_id
)

SELECT id, child_count FROM CTE;

📌 정리
✔ 서브쿼리는 끝에서 이름을 붙임 (AS 별칭)
WITH(CTE)는 이름을 먼저 정의하고 시작
✔ WITH가 더 가독성이 좋고 재사용하기 편함

profile
IT기업에서 운영 기획 담당하고 있습니다 : )

0개의 댓글