EXERCISE TOPIC▼
SQL EXERCISES▼
SQL EXERCISES▼
- 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 | Subqueries exercise | Selecting data from a sub query
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.
You can learn how to do this exercise if you attend one of more of the courses listed below!
Software ==> | SQL (198 exercises) |
Version ==> | Any version of SQL Server |
Topic ==> | Subqueries (5 exercises) |
Level ==> | Average difficulty |
Courses ==> | Introduction to SQL / Fast-track SQL |
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.
Write a SELECT statement to return events from the 3 continents with the fewest events. To do this first write a SELECT query which returns all the continents and events.

Unsorted results returns 459 events.
Now underneath write another SELECT statemnt which lists events for the 3 continents with the lowest COUNT of events. Put the COUNT in the ORDER BY clause, not the SELECT.

Not as many penguin parties as you'd expect.
Finally use the second SELECT as a filter in the first SELECT's WHERE clause. To do this use ContinentName IN (Sub Query).

Only 8 events in these 3 continents - maybe stick to Ibiza and the Islands!
Optionally save this as Quiet places to visit.sql, and close it down.
select T1.EventName,T3.ContinentName
from tblEvent T1
full join tblCountry T2 on T2.CountryID=T1.CountryID
full join tblContinent T3 on T3.ContinentID = T2.ContinentID
where T3.ContinentName IN
(
select top 3 T3.ContinentName
from tblEvent T1
full join tblCountry T2 on T2.CountryID=T1.CountryID
full join tblContinent T3 on T3.ContinentID = T2.ContinentID
group by T3.ContinentName order by count(t1.EventID) asc
);
i cannot seem to figure out the answer of the second one this is my code so far :
select top 3 con.ContinentName, eve.EventName
from tblCountry as cou
inner join tblContinent con on con.ContinentID=cou.ContinentID
inner join tblEvent as eve on eve.CountryID=cou.CountryID
select top 3 cou.CountryName
from tblCountry as cou
inner join tblEvent as eve on eve.CountryID=cou.CountryID
group by cou.CountryName
order by count(eve.eventid) desc
use WorldEvents
go
SELECT ContinentName, EventName
FROM tblEvent AS a
INNER JOIN tblCountry AS b
ON a.CountryID = b.CountryID
INNER JOIN tblContinent AS c
ON b.ContinentID = c.ContinentID
WHERE ContinentName IN (
SELECT TOP 3 ContinentName--, COUNT(EventName) as [Event Count]
FROM tblEvent AS a
INNER JOIN tblCountry AS b
ON a.CountryID = b.CountryID
INNER JOIN tblContinent AS c
ON b.ContinentID = c.ContinentID
Group By ContinentName
ORDER BY COUNT(EventName)
)