SQLZOOのSELECT basicsを解いてみた
さいきんSQLを勉強していまして、Gunosyの「非エンジニアが最速でSQLをマスターする方法」に書いてある『10年戦えるデータ分析入門』→SQLZOO (https://sqlzoo.net/wiki/SQL_Tutorial) という順番で学習を進めています。
SQLZOOは出力が合っているのか違っているのかは教えてくれるのですが、どんなSQL文を書けば正解できるのか教えてくれません。すでに日本語でSQLZOOの解答を公開してくださっている方もおられますが、私も自分の勉強のアウトプットとして、解答例を公開したいと思います。
SQLZOOは問題文が英語なので、あまり自信はありませんが問題文の和訳も用意しました。意訳なので正確さに欠けるかもしれませんが……
Introducing the world table of countries
この例は「フランス」の人口を表示するために、WHERE節を使っています。文字列はシングルクオートの中にいれる必要がある点に注意してください。この例をドイツの人口を表示するように修正してください。
解答例
SELECT population
FROM world
WHERE name = 'Germany';
Scandinavia
リストをチェックするINはリスト内に項目があるかどうかチェックしてくれます。この例は「ブラジル」「ロシア」「インド」「中国」の名前と人口を示します。「スウェーデン」「ノルウェー」「デンマーク」の名前と人口を示してください。
解答例
SELECT name, population
FROM world
WHERE name IN ('Sweden', 'Norway', 'Denmark’);
Just the right size
どの国が小さくもなく大きくもないでしょうか? BETWEENは範囲をチェックしてくれます(条件として指定された範囲は境界値を含みます)。この例は面積が25000~300000平方kmの国を表示します。この例を修正して、200000~250000平方kmの面積を持つ国の名前とその面積を表示してください。
解答例
SELECT name, area
FROM world
WHERE area BETWEEN 200000 AND 250000;