Subquery trong Select cho phép tính
Subquery trong SELECT là một cách hữu ích để tạo các cột tính toán trong truy vấn. Một subquery trong SELECT có thể được xem như một giá trị số đơn lẻ để dùng trong phép tính của bạn. Khi viết subquery trong SELECT, cần nhớ rằng lọc ở truy vấn chính sẽ không tự động lọc subquery — và ngược lại.
Ở bài trước, bạn đã tạo một cột để so sánh số bàn thắng trung bình mỗi giải với số bàn thắng trung bình toàn mùa 2013/2014. Trong bài này, bạn sẽ thêm một cột so sánh trực tiếp hai giá trị này bằng cách lấy trung bình theo giải trừ đi trung bình toàn mùa từ subquery.
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
- Chọn số bàn thắng trung bình mỗi trận cho từng giải trong truy vấn chính.
- Chọn số bàn thắng trung bình mỗi trận toàn bộ cho mùa
'2013/2014'trong subquery. - Trừ giá trị từ subquery khỏi số bàn thắng trung bình tính cho mỗi giải.
- Lọc truy vấn chính để chỉ bao gồm các trận của mùa
'2013/2014'.
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 league name and average goals scored
___ AS league,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Subtract the overall average from the league average
ROUND(AVG(___ + m.away_goal) ___
(SELECT ___(___ + away_goal)
FROM match
WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;