【SQL練習】【SQLZOO】 4 SELECT within SELECT
4 SELECT within SELECT
問題はこちらです。
SELECT within SELECT Tutorial/ja - SQLZOO
以下が解答となります。
1.ロシアより大きい
【解答】
SELECT name FROM world WHERE population > (SELECT population FROM world WHERE name='Russia');
2.イギリスより豊か
【解答】
SELECT name FROM world WHERE continent = 'Europe' AND gdp/population > (SELECT gdp/population FROM world WHERE name = 'United Kingdom');
3.アルゼンチンとオーストラリアの近所
【解答】
SELECT name, continent FROM world WHERE continent IN (SELECT continent FROM world WHERE name IN ('Argentina','Australia')) ORDER BY name;
4.カナダとポーランドの間
【解答】
SELECT name, population FROM world WHERE (population > (SELECT population FROM world WHERE name = 'Canada')) AND (population < (SELECT population FROM world WHERE name = 'Poland'));
5.ドイツのパーセント
【解答】
①:CONCAT関数を使用すると、何故か小数点以下の数値も表示されて正解できない
■ 2021.6.18 追記
SELECT name, CONCAT(ROUND(population / (SELECT population FROM world WHERE name = 'Germany') * 100, 0), '%') FROM world WHERE continent = 'Europe';
6.ヨーロッパで最大の国
【解答】
SELECT name FROM world WHERE gdp > (SELECT MAX(gdp) FROM world WHERE continent = 'Europe' GROUP BY continent);
7.各大陸で最大
【解答】
SELECT continent, name, area FROM world WHERE area IN (SELECT MAX(area) FROM world GROUP BY continent);
8.各大陸で先頭の国(アルファベット順)
【解答】
SELECT continent, MIN(name) FROM world GROUP BY continent;
9.難問。まだ説明していないテクニックを使う。
【解答】
SELECT name, continent, population FROM world x WHERE 25000000 >= ALL(SELECT population FROM world y WHERE x.continent=y.continent);
10.難問。まだ説明していないテクニックを使う。
【解答】
SELECT name, continent FROM world x WHERE population > ALL(SELECT 3 * population FROM world y WHERE y.continent= x.continent AND y.name <> x.name);