Trận đấu đã OVER
Mệnh đề OVER() cho phép bạn áp dụng một hàm tổng hợp trên toàn bộ tập dữ liệu, tương tự như các truy vấn con trong SELECT. Mệnh đề OVER() mang lại lợi ích đáng kể so với truy vấn con trong SELECT — cụ thể là truy vấn của bạn sẽ chạy nhanh hơn, và OVER() còn hỗ trợ nhiều hàm và mệnh đề bổ sung mà bạn có thể kết hợp, chúng ta sẽ tìm hiểu ở phần sau của chương này.
Trong bài tập này, bạn sẽ chỉnh sửa một số truy vấn từ các chương trước bằng cách sử dụng mệnh đề OVER().
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
IDcủa trận đấu,namecủa quốc gia,season,home_goal, vàaway_goaltừ các bảngmatchvàcountry. - Hoàn chỉnh truy vấn tính trung bình số bàn thắng ghi được trên toàn bộ dữ liệu và đưa giá trị tổng hợp đó vào mỗi hàng bằng một hàm cửa sổ (window).
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 match id, country name, season, home, and away goals
___,
c.___ AS country,
m.season,
___.home_goal,
___,
-- Use a window to include the aggregate average in each row
___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;