Xây dựng dựa trên Subquery trong FROM
Trong bài trước, bạn đã tìm ra rằng Anh, Hà Lan, Đức và Tây Ban Nha là những quốc gia duy nhất có các trận đấu trong cơ sở dữ liệu mà tổng số bàn thắng đạt từ 10 trở lên. Hãy tìm hiểu chi tiết hơn về những trận đó — thời điểm diễn ra, mùa giải nào, và số bàn thắng sân nhà so với sân khách.
Bạn sẽ thấy trong bài này, bí danh bảng được lược bỏ cho mọi cột được chọn ở truy vấn chính. Lý do là truy vấn chính đang lấy dữ liệu từ subquery, vốn được coi như một bảng đơ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
Hướng dẫn bài tập
- Hoàn thiện subquery trong mệnh đề
FROM. Chọnnamecủa quốc gia từ bảngcountry, cùng với các cộtdate,home_goal,away_goal, vàtotal_goalstừ bảngmatch. - Tạo một cột trong subquery cộng số bàn thắng sân nhà và sân khách, đặt tên là
total_goals. Cột này sẽ được dùng để lọc truy vấn chính. - Trong truy vấn chính, chọn các cột
country,date,home_goal, vàaway_goal. - Lọc truy vấn chính cho các trận có tổng số bàn thắng từ 10 trở lê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.
SELECT
-- Select country, date, home, and away goals from the subquery
___,
date,
___,
away_goal
FROM
-- Select country name, date, home_goal, away_goal, and total goals in the subquery
(SELECT ___ AS country,
m.date,
___,
m.away_goal,
(___ + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN country AS c
ON m.country_id = c.id) AS subq
-- Filter by total goals scored in the main query
WHERE total_goals ___ ___;