1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Xử lý dữ liệu trong SQL

Connected

Bài tập

Dọn gọn với CTE

Trong chương 2, bạn đã tạo danh sách các quốc gia và số trận đấu ở mỗi quốc gia có hơn 10 bàn thắng. Truy vấn trong bài tập đó sử dụng một truy vấn lồng trong mệnh đề FROM để lọc các trận đấu trước khi đếm chúng trong truy vấn chính. Dưới đây là truy vấn bạn đã viết:

SELECT
  c.name AS country,
  COUNT(sub.id) AS matches
FROM country AS c
INNER JOIN (
  SELECT country_id, id 
  FROM match
  WHERE (home_goal + away_goal) >= 10) AS sub
ON c.id = sub.country_id
GROUP BY country;

Bạn có thể liệt kê một (hoặc nhiều) truy vấn lồng nhau dưới dạng common table expressions (CTE) bằng cách khai báo chúng trước truy vấn chính. Đây là công cụ tuyệt vời để tổ chức thông tin và sắp xếp theo trình tự hợp lý.

Trong bài tập này, hãy viết lại một truy vấn tương tự bằng cách dùng CTE.

Hướng dẫn

100 XP
  • Hoàn chỉnh cú pháp để khai báo CTE của bạn.
  • Chọn country_id và id của trận đấu từ bảng match trong CTE.
  • LEFT JOIN CTE với bảng league bằng country_id.