【SQLZOO答え】3.SELECT from Nobel
SQL入門を勉強するため、友人にSQLの練習問題ないかと聞いたら、
【SQLZOO】というサイトを教えてもらいました。
ただし、問題を解いてるうちに、わからない問題に関して、クエリの答えがおらず、結果しか教えてくれないので、答えをアウトプットしようと思い、noteを始めました。
0.SQLZOO練習問題
1.1950 年度の受賞者
1950年度のノーベル賞受賞者を表示するようにクエリーを修正する。
select
yr, subject, winner
from
nobel
where
yr = 1950;
2.1962年の文学賞
ノーベル文学賞(Literature)を1962年に受賞した人を表示
select
winner
from
nobel
where
yr = 1962
AND subject = 'Literature';
3.アルバート・アインシュタイン
アルバート・アインシュタイン(Albert Einstein)がノーベル賞を受賞した年と分野を表示
select
yr, subject
from
nobel
where
winner = 'Albert Einstein';
4.近年の平和賞
ノーベル平和賞( subject が Peace )の 2000年以降(2000を含む)の受賞者名を表示
select
winner
from
nobel
where
yr >= 2000
and subject = 'Peace';
5.1980年代の文学賞
1980から1989年の間のノーベル文学賞について、年度、分野、受賞者の全ての詳細を表示する。
select
yr, subject, winner
from
nobel
where
yr between 1980 and 1989
and subject = 'Literature';
6.大統領のみ
次の大統領の受賞内容の詳細を表示する。
・テオドール=ルーズベルト Theodore Roosevelt
・ウッドロウ=ウィルソン Woodrow Wilson
・ジミー=カーター Jimmy Carter
・バラク=オバマ Barack Obama
select
*
from
nobel
where
winner IN ('Theodore Roosevelt',
'Woodrow Wilson',
'Jimmy Carter',
'Barack Obama')
7.ジョン
ファーストネームが John の受賞者を表示
select
winner
from
nobel
where
winner like 'john%'
8.異なる年度の化学賞と物理学賞
1980年のノーベル物理賞 physics の受賞者 と 1984年の化学賞 chemistry の受賞者を共に表示する
select
*
from
nobel
where
(yr = 1980 and subject = 'physics')
or (yr = 1984 and subject = 'chemistry')
9.化学と医学を除く
1980年の 化学 Chemistry と医学 Medicine 以外で、賞の年度、分野、名前を表示
select
*
from
nobel
where
yr = 1980
and subject not in ('Chemistry', 'Medicine')
10.初期の医学と最近の文学
1910年以前(1910は含まず)の 初期の医学 Medicine の受賞者 と 2004年以降(2004は含む)の 最近の文学 Literature の受賞者 を共に表示する。
select
*
from
nobel
where
(yr<1910 and subject='Medicine')
or (yr>=2004 and subject='Literature')
11.ウムラウト
PETER GRÜNBERG の受賞内容詳細を検索する。 ウムラウトの入力方法(Ü の入力方法)を調べ検索キーワードで機能させる方法を調べる。
非アスキー文字
彼の名前の u には ウムラウト がある。このリンクが便利かも https://en.wikipedia.org/wiki/%C3%9C#Keyboarding
select
*
from
nobel
where
winner = 'PETER GRÜNBERG'
12.アポストロフィー
EUGENE O'NEILL の全ての受賞内容詳細を検索する。
シングルクォートのエスケープ
シングルクォートをクォート文字列中にそのまま置くことはできない。2つのシングルクォートを続けて2つ書くとシングルクォートになる。
select
*
from
nobel
where
winner = 'EUGENE O''NEILL'
13.騎士の領域
騎士の順序
騎士の受賞者リストを表示する。 Sir. で始まる受賞者の 受賞者、年、分野 を表示する。 年が新しい順に、同年内では名前順に表示する。
select
winner, yr, subject
from
nobel
where
winner like 'sir%'
order by
yr desc, winner;
14.化学賞と物理賞は末尾に
式 subject IN ('Physics' , Chemistry') の値は 0 または 1 として扱われる。
1984年の賞の 受賞者 winner と分野 subject を分野と受賞者の名前順で表示する。ただし化学 Chemistry と物理学 Physics は最後の方に表示する。
select
winner, subject
from
nobel
where
yr=1984
order by
subject in ('Physics','Chemistry'), subject, winner
その他の答えへ
0.SELECT basics
1.SELECT name
2.SELECT from World
3.SELECT from Nobel
4.SELECT within SELECT
5.SUM and COUNT
6.JOIN
7.More JOIN operations
8.Using Null
8+ Numeric Examples
9.Self join
10.Tutorial Quizzes
11.Tutorial Student Records
12.Tutorial DDL
※問題を攻略でき次第、随時更新いたします。
この記事が気に入ったらサポートをしてみませんか?