SQL | Derived tables and CTEs exercise | Two CTEs to show space category data

This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.

Software ==> SQL  (198 exercises)
Version ==> Any version of SQL Server
Topic ==> Derived tables and CTEs  (13 exercises)
Level ==> Harder than average
Subject ==> SQL training
Before you can do this exercise, you'll need to download and unzip this file (if you have any problems doing this, click here for help). Once you've done this:
  1. Go into SQL Server Management Studio;
  2. Open the SQL file you've just unzipped (you can press CTRL + O to do this); then
  3. Execute this script.

This will generate the database that you'll need to use in order to do this exercise (note that the database and script are only to be used for exercises published on this website, and may not be reused or distributed in any form without the prior written permission of Wise Owl).

You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.

Space: the final frontier.  But it's also one of the countries in the events database.  The aim of this exercise is to list out all the categories of events which occurred in the Space country:

Space categories

Space events, as it turns out, only use two categories.


You'll then list all of the events which didn't occur in Space, with their country names and categories:

Non-space events

The first few of the 444 events which didn't happen in the Space country.


You can then show the 8 countries which had non-Space events in the same category as one of the Space events.  Read on!

To start with, write a select statement to return the CategoryName of events which occur in the country Space only:

CTE Countries CategoryName

Perhaps war should be a CategoryName in Space, since the satellite USA-193 was shot down by a long-range missile?


Now turn this into a CTE so the list is stored in a table that we can join to later. The layout looks like this:

With CTE_Name



Your select statement goes here


-- Additional CTEs don't need a second WITH separate with commas





The second CTE should hold a list of all the countries and their categories excluding (<>) Space. You can then join the two CTEs together based on the CategoryName to show the final answer:

Final query

The 8 countries in which events occurred in terrestrial (ie non-Space) countries, but where these events' categories were shared by Space events!


Use DISTINCT to remove duplicate countries (some countries had more than one qualifying event).

Optionally save this as Categories Out Of This World.sql then close it down.

You can unzip this file to see the answers to this exercise, although please remember this is for your personal use only.
This page has 0 threads Add post