- Simple Queries (4)
- Setting criteria using WHERE (5)
- Calculations (7)
- Calculations using dates (4)
- Basic joins (8)
- More exotic joins (2)
- Aggregation and grouping (8)
- Views (5)
- Subqueries (5)
- Stored procedures (5)
- Variables (8)
- Parameters and return values (11)
- Testing conditions (1)
- Looping (3)
- Scalar functions (6)
- Transactions (5)
- Creating tables (5)
- Temporary tables and table variables (9)
- Table-valued functions (6)
- Derived tables and CTEs (13)
- Dynamic SQL (4)
- Pivots (2)
- Triggers (2)
- Archived (70)
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.
- Go into SQL Server Management Studio;
- Open the SQL file you've just unzipped (you can press CTRL + O to do this); then
- 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 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:
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:
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:
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:
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.