LoginSignup
5
2

More than 1 year has passed since last update.

SQLZOO SELECT basics / SELECT from WORLD Tutorial 回答集

Last updated at Posted at 2018-08-18

<2020/08/15 追記>

現在、SQLの学習をSQLZOOで開始するのはあまりお勧めできません。
別のサービスの活用をご検討ください。


SQLの入門サイトとして名高いSQLZOOのチュートリアルより、
「SELECT basics」「SELECT from WORLD Tutorial」の回答集を作成しました。


SELECT basics

1 . Introducing the world table of countries

SELECT population FROM world
  WHERE name = 'Germany'

国名を書き換えるだけですね。

2 . Scandinavia

SELECT name, population FROM world
  WHERE name IN ('Sweden', 'Norway', 'Denmark')

こちらも国名を書き換えるだけ。

3 . Just the right size

SELECT name, area FROM world
  WHERE area BETWEEN 200000 AND 250000

数値を書き換えるだけです。


SELECT from WORLD Tutorial

1 . Introduction

なにもしない

2 . Large Countries

SELECT name
  FROM world
 WHERE population >= 200000000

比較演算子と数値の書き換え

3 . Per capita GDP

SELECT name, gdp/population
  FROM world
 WHERE population >= 200000000

割り算で一人当たりGDPを算出

4 . South America In millions

SELECT name, population/1000000
  FROM world
 WHERE continent = 'South America'

人口の100万単位表示とWHERE句の文字列指定

5 . France, Germany, Italy

SELECT name, population
  FROM world
 WHERE name IN ('France', 'Germany', 'Italy')

IN句が初登場。()内のどれか、という意味。

6 . United

SELECT name
  FROM world
 WHERE name LIKE '%United%'

Unitedは必ず先頭にくるので、'United%'でもよい。

7 . Two ways to be big

SELECT name, population, area
  FROM world
 WHERE area >=3000000 OR population >= 250000000

millionは100万です。コンマ区切りできないので見づらい...

8 . One or the other (but not both)

SELECT name, population, area
FROM world
WHERE area >= 3000000 xor population >= 250000000

排他的論理和というやつですね。いろんな方法があるのですが、一番簡単な「XOR」で表現しました。

9 . Rounding

SELECT name, ROUND(population/1000000, 2), ROUND(gdp/1000000000, 2)
FROM world
WHERE continent = 'South America'

ROUND(数値, n)で小数点以下n桁に丸めます(四捨五入)。nは有効桁数と呼び、0が1の位、1が小数点以下第一位、-1が10の位です。
ROUNDは色々オプションがありますが、一旦無視して進んでいいでしょう。

10 . Trillion dollar economies

SELECT name, ROUND(gdp/population, -3)
FROM world
WHERE gdp >= 1000000000000

さっそく有効桁数のマイナスが登場。

11 . Name and capital have the same length

SELECT name, capital
  FROM world
 WHERE LENGTH(name) = LENGTH(capital)

LENGTH()で文字数を返します。

12 . Matching name and capital

SELECT name,capital
  FROM world
 WHERE LEFT(name,1) = LEFT(capital,1) and name <> capital

13 . All the vowels

SELECT name
  FROM world
 WHERE name LIKE '%a%' 
  and name LIKE '%i%' 
 and name LIKE '%u%'
  and name LIKE '%e%'
  and name LIKE '%o%'
   AND name NOT LIKE '% %'

書き方汚くてすいません


続きはこちら

5
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2