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

PARTITION BY nhiều cột

Mệnh đề PARTITION BY có thể được dùng để tách các giá trị trung bình theo window dựa trên nhiều điểm dữ liệu (cột). Bạn thậm chí có thể tính sẵn thông tin muốn dùng để phân vùng dữ liệu! Ví dụ, bạn có thể tính số bàn thắng trung bình theo mùa giải và theo quốc gia, hoặc theo năm dương lịch (lấy từ cột ngày).

Trong bài tập này, bạn sẽ tính số bàn thắng trung bình trên sân nhà và sân khách mà Legia Warszawa ghi được, cũng như của đối thủ của họ, được phân vùng theo tháng trong từng mùa giải.

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

  • Xây dựng hai hàm window phân vùng (partition) trung bình số bàn thắng sân nhà và sân khách theo mùa giải và tháng.
  • Lọc tập dữ liệu theo team ID (8673) của Legia Warszawa để phép tính window chỉ bao gồm các trận đấu có họ tham gia.

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 
	date,
	season,
	home_goal,
	away_goal,
	CASE WHEN hometeam_id = 8673 THEN 'home' 
         ELSE 'away' END AS warsaw_location,
	-- Calculate average goals partitioned by season and month
    ___(home_goal) ___(___ ___ ___, 
         	EXTRACT(___ FROM date)) AS season_mo_home,
    ___(away_goal) ___(___ ___ ___, 
            EXTRACT(___ FROM date)) AS season_mo_away
FROM match
WHERE 
	hometeam_id = ___
    OR awayteam_id = ___
ORDER BY (home_goal + away_goal) DESC;
Chỉnh sửa và Chạy Mã