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

CTE với các truy vấn lồng nhau

Nếu bạn phải liệt kê nhiều truy vấn con trong mệnh đề FROM với các câu lệnh lồng nhau, truy vấn của bạn sẽ có xu hướng trở nên dài, phức tạp và khó đọc.

Vì nhiều truy vấn được viết với mục đích lưu lại và chạy lại trong tương lai, tổ chức hợp lý là chìa khóa cho một quy trình làm việc trơn tru. Sắp xếp các truy vấn con thành CTE sẽ giúp bạn tiết kiệm thời gian, dung lượng và tránh nhầm lẫn về lâu dà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

  • Khai báo một CTE tính tổng số bàn thắng từ các trận diễn ra trong tháng Tám của mùa '2013/2014'.
  • Lọc danh sách trong truy vấn con bên trong để chỉ chọn các trận trong tháng Tám của mùa '2013/2014'.
  • Thực hiện LEFT JOIN CTE với bảng league bằng country_id từ CTE match_list.

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 your CTE
___ match_list ___ (
    SELECT 
  		country_id,
  	   (home_goal + away_goal) AS goals
    FROM match
  	-- Create a list of match IDs to filter data in the CTE
    WHERE id IN (
       SELECT ___
       FROM ___
       WHERE season = ___ AND EXTRACT(MONTH FROM ___) = ___))
-- Select the league name and average of goals in the CTE
SELECT 
	___,
    ___(___)
FROM league AS l
-- Join the CTE onto the league table using country_id
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;
Chỉnh sửa và Chạy Mã