어디에나 있는 모든 서브쿼리
축구 리그에서는 경기가 여러 단계(stage) 에 걸쳐 진행됩니다. 승리한 팀은 다음 단계로 진출하며, 최종 단계에 도달할 때까지 이 과정이 반복됩니다. 각 단계가 거듭될수록 승부의 중요성은 이전 단계보다 더 커집니다. match 테이블에는 각 경기가 치러진 단계에 대한 데이터가 포함되어 있습니다.
다음 3개의 연습 문제에서는 SELECT, FROM, WHERE 절 각각에 서브쿼리를 포함한 하나의 쿼리를 작성해볼 거예요. 단계가 거듭되어 승부의 중요성이 커질수록 평균 득점 수에도 변화가 있을까요?
이 쿼리에서는 동일한 서브쿼리를 반복 사용하여 각 위치에서 서브쿼리를 연습할 수 있도록 구성했습니다. 매번 match 테이블을 다시 읽어오므로, 실제로 작업할 때는 4장에서 다룰 윈도우 함수를 사용해 전체 평균을 한 번만 계산하는 것이 더 효율적입니다.
이 연습은 강의의 일부입니다
SQL 데이터 조작
연습 안내
SELECT서브쿼리에서 전체 득점의 평균을 추출하세요.- 메인 쿼리에서 특정
stage에 대한 총 득점의 평균을 계산하세요. - 서브쿼리와 메인 쿼리 모두에서 2012/2013 시즌 데이터만 포함되도록 필터링하세요.
m.stage열을 기준으로 쿼리를GROUP하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
-- Select the stage and average goals for each stage
m.stage,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Select the average overall goals for the 2012/2013 season
ROUND((SELECT ___(___ + away_goal)
FROM match
WHERE season = ___),2) AS overall
FROM match AS m
-- Filter for the 2012/2013 season
WHERE ___ = ___
-- Group by stage
GROUP BY ___;