Subquery Ở KHẮP MỌI NƠI
Trong các giải bóng đá, các trận đấu diễn ra ở những vòng khác nhau. Đội thắng sẽ đi tiếp từ vòng này sang vòng tiếp theo cho đến khi vào chung kết. Ở mỗi vòng, mức độ căng thẳng và quan trọng đều cao hơn vòng trước. Bảng match chứa dữ liệu về các vòng mà mỗi trận diễn ra.
Trong 3 bài tập tiếp theo, bạn sẽ xây dựng một truy vấn có truy vấn con ở từng mệnh đề SELECT, FROM và WHERE. Liệu số bàn thắng trung bình ghi được có thay đổi khi độ căng thẳng tăng dần qua từng vòng?
Truy vấn này lặp lại một truy vấn con để bạn luyện tập cách đặt ở mỗi vị trí. Mỗi bản sao sẽ đọc lại bảng match, vì vậy trong công việc thực tế bạn nên chỉ tính trung bình tổng thể một lần, như Chương 4 minh họa bằng window function.
Bài tập này là một phần của khóa học
Xử lý dữ liệu trong SQL
Hướng dẫn bài tập
- Trích xuất số bàn thắng tổng trung bình trong một truy vấn con ở
SELECT. - Tính trung bình tổng số bàn thắng cho
stagecụ thể trong truy vấn chính. - Lọc cả hai truy vấn con và truy vấn chính để chỉ bao gồm dữ liệu từ mùa 2012/2013.
GROUPtruy vấn theo cộtm.stage.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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 ___;