Truy vấn UNION rồi JOIN
Mục tiêu của bạn là tạo lại báo cáo như trước, bao gồm các trường sau:
- season, cho ra
summerhoặcwinter - country
- events, hiển thị số lượng sự kiện duy nhất
Trong bài này, hãy tạo truy vấn theo cách làm UNION trước, JOIN sau. Khi dùng cách này, bạn sẽ cần dùng truy vấn UNION ban đầu làm subquery. Subquery cần bao gồm tất cả các trường liên quan, kể cả các trường dùng để join.
Như mọi khi, bạn có thể tham khảo E:R Diagram.
Bài tập này là một phần của khóa học
Lập báo cáo trong SQL
Hướng dẫn bài tập
- Trong subquery, xây dựng truy vấn xuất ra
season,country_idvàeventbằng cách kết hợp Thế vận hội mùa hè và mùa đông vớiUNION ALL. - Tận dụng một
JOINvà một câu lệnhSELECTkhác để hiển thị các trườngseason,countryvà sốeventsduy nhất. GROUP BYmọi trường không được tổng hợp.- Sắp xếp báo cáo theo
eventsgiả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.
-- Add outer layer to pull season, country and unique events
SELECT
____,
____,
____ AS events
FROM
-- Pull season, country_id, and event for both seasons
(SELECT
____ AS season,
____,
____
FROM ____
____
SELECT
____ AS season,
____,
____
FROM ____) AS subquery
JOIN ____ AS c
ON ____
-- Group by any unaggregated fields
GROUP BY ____
-- Order to show most events at the top
ORDER BY ____;