-
Notifications
You must be signed in to change notification settings - Fork 1
/
tutorial4.sql
94 lines (73 loc) · 3.11 KB
/
tutorial4.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
-- SELECT within SELECT
-- 1. List each country name where the population is larger than that of 'Russia'.
SELECT name
FROM world
WHERE population > (SELECT population
FROM world
WHERE name = 'Russia');
-- 2. Show the countries in Europe with a per capita GDP greater than 'United Kingdom'.
SELECT name
FROM world
WHERE continent = 'Europe' AND gdp/population > (SELECT gdp/population
FROM world
WHERE name = 'United Kingdom');
/* 3. List the name and continent of countries in the continents containing either Argentina or Australia.
Order by name of the country. */
SELECT name, continent
FROM world
WHERE continent IN (SELECT continent
FROM world
WHERE name IN ('Argentina', 'Australia'))
ORDER BY name;
/* 4. Which country has a population that is more than Canada but less than Poland?
Show the name and the population. */
SELECT name, population
FROM world
WHERE population > (SELECT population
FROM world
WHERE name = 'Canada') AND
population < (SELECT population
FROM world
WHERE name = 'Poland');
/* 5. Show the name and the population of each country in Europe.
Show the population as a percentage of the population of Germany. */
SELECT name, CONCAT(ROUND(population/(SELECT population
FROM world
WHERE name = 'Germany') * 100), '%')
FROM world
WHERE continent = 'Europe';
/* 6. Which countries have a GDP greater than every country in Europe?
[Give the name only.] (Some countries may have NULL values) */
SELECT name
FROM world
WHERE gdp > ALL(SELECT gdp
FROM world
WHERE continent = 'Europe' AND gdp > 0);
-- 7. Find the largest country (by area) in each continent, show the continent, the name and the area.
SELECT continent, name, area
FROM world x
WHERE area >= ALL(SELECT area
FROM world y
WHERE x.continent = y.continent AND area > 0);
-- 8. List each continent and the name of the country that comes first alphabetically
SELECT continent, name
FROM world x
WHERE name <= ALL(SELECT name
FROM world y
WHERE x.continent = y.continent);
-- I did not solve 9 and 10 myself, I had some help.
/* 9. Find the continents where all countries have a population <= 25000000.
Then find the names of the countries associated with these continents. Show name, continent and population. */
SELECT name, continent, population
FROM world x
WHERE 25000000 >= ALL(SELECT population
FROM world y
WHERE x.continent = y.continent);
/* 10. Some countries have populations more than three times that of any of their neighbours (in the same continent)
Give the countries and continents. */
SELECT name, continent
FROM world x
WHERE population > ALL(SELECT population * 3
FROM world y
WHERE x.continent = y.continent AND
x.name != y.name);