Bắt đầu ngayBắt đầu miễn phí

Ở đâ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

Xem khóa học

Hướng dẫn bài tập

  • SELECT tên giải đấu và số bàn thắng trung bình mỗi trận từ leaguematch.
  • 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 OVER tổ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 ___;
Chỉnh sửa và Chạy Mã