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

Thêm một window function

Tuyệt vời! Giờ bạn đã có một tập kết quả truy xuất ngày thi đấu, đội chủ nhà, đội khách, và số bàn thắng của mỗi đội. Bạn còn một phần cuối của câu hỏi — Manchester United thua đậm thế nào ở mỗi trận?

Để xác định điều này, hãy thêm một window function vào truy vấn chính để xếp hạng các trận theo giá trị tuyệt đối của chênh lệch giữa home_goalaway_goal. Cách này cho phép bạn so sánh trực tiếp chênh lệch tỷ số mà không cần quan tâm Manchester United đá sân nhà hay sân khách!

Biểu thức đã được viết sẵn — bạn chỉ cần hoàn thiện đúng window function là xong!

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

  • Thiết lập các CTE để đội nhà và đội khách đều có tên, ID, và số bàn thắng tương ứng.
  • Chọn date, home team name, away team name, home goals, và away goals trong truy vấn chính.
  • Xếp hạng các trận và sắp xếp theo chênh lệch tỷ số theo thứ tự giảm dần.

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.

-- Set up the home team CTE
___ ___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Win'
		   WHEN m.home_goal < m.away_goal THEN 'MU Loss' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.hometeam_id = t.team_api_id),
-- Set up the away team CTE
___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Loss'
		   WHEN m.home_goal < m.away_goal THEN 'MU Win' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.awayteam_id = t.team_api_id)
-- Select columns and and rank the matches by goal difference
SELECT DISTINCT
    ___,
    ___.___ AS home_team,
    ___.___ AS away_team,
    m.home_goal, m.away_goal,
    ___() ___(___ ___ ABS(home_goal - away_goal) ___) as match_rank
-- Join the CTEs onto the match table
FROM match AS m
___ JOIN ___ ON m.id = ___
___ JOIN ___ ON m.id = ___
WHERE m.season = '2014/2015'
      AND ((home.team_long_name = 'Manchester United' AND home.outcome = 'MU Loss')
      OR (away.team_long_name = 'Manchester United' AND away.outcome = 'MU Loss'));
Chỉnh sửa và Chạy Mã