Ở đây có gì với OVER?
Hàm cửa sổ (window functions) cho phép bạn tạo RANK cho thông tin theo bất kỳ biến nào bạn muốn dùng để sắp xếp dữ liệu. Khi thiết lập, bạn cần chỉ định cột/phép tính dùng để tính hạng. Việc này được thực hiện bằng cách thêm mệnh đề ORDER BY vào bên trong mệnh đề OVER(). Dưới đây là một ví dụ:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
Trong bài này, bạn sẽ tạo một tập dữ liệu xếp hạng các trận đấu theo những giải đấu mà trung bình ghi được nhiều bàn thắng nhất trong một trận.
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
SELECTtên giải đấu và số bàn thắng trung bình mỗi trận từleaguevàmatch.- Hoàn thiện hàm cửa sổ để tính
RANK()của số bàn thắng trung bình trên tất cả các giải đấu trong cơ sở dữ liệu. - Xếp hạng
OVERtổng trung bình số bàn thắng sân nhà và sân khách.
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,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league over the average goals
___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;