중첩 하위 쿼리와 CTE
FROM 절에 중첩된 문과 함께 여러 하위 쿼리를 나열하게 되면, 쿼리가 길고 복잡해져 읽기 어려워질 수 있어요.
많은 쿼리는 저장해 두었다가 나중에 다시 실행하려는 의도로 작성되므로, 원활한 워크플로를 위해서는 체계적인 구성 이 중요합니다. 하위 쿼리를 CTE로 정리하면 장기적으로 시간, 공간, 혼란을 모두 줄일 수 있어요!
이 연습은 강의의 일부입니다
SQL에서의 데이터 조작
연습 안내
'2013/2014'시즌의 8월 경기에서 총 득점을 계산하는 CTE를 선언하세요.- 내부 하위 쿼리에서 목록을 필터링해
'2013/2014'시즌의 8월 경기만 선택하세요. match_listCTE의country_id를 사용해 해당 CTE를 리그 테이블에LEFT JOIN하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Set up your CTE
___ match_list ___ (
SELECT
country_id,
(home_goal + away_goal) AS goals
FROM match
-- Create a list of match IDs to filter data in the CTE
WHERE id IN (
SELECT ___
FROM ___
WHERE season = ___ AND EXTRACT(MONTH FROM ___) = ___))
-- Select the league name and average of goals in the CTE
SELECT
___,
___(___)
FROM league AS l
-- Join the CTE onto the league table using country_id
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;