ろくろ猫のブログ

しがない会社員の備忘log

【SQL練習】【SQLZOO】 3 SELECT from Nobel

3 SELECT from Nobel

f:id:rokuroneko:20210530121716j:plain

問題はこちらです。
SELECT from Nobel Tutorial/ja - SQLZOO


以下が解答となります。

1.1950 年度の受賞者

【解答】
f:id:rokuroneko:20210601211805p:plain

SELECT yr, subject, winner FROM nobel WHERE yr = 1950;


2.1962年の文学賞

【解答】
f:id:rokuroneko:20210601211859p:plain

SELECT winner FROM nobel WHERE yr = 1962 AND subject = 'Literature';


3.アルバート・アインシュタイン

【解答】
f:id:rokuroneko:20210601212018p:plain

SELECT yr, subject FROM nobel WHERE winner = 'Albert Einstein';


4.近年の平和賞

【解答】
f:id:rokuroneko:20210601212150p:plain

SELECT winner FROM nobel WHERE subject = 'Peace' AND yr >= 2000;


5.1980年代の文学賞

【解答】
f:id:rokuroneko:20210601212257p:plain

SELECT yr, subject, winner FROM nobel 
WHERE subject = 'Literature' AND yr BETWEEN 1980 AND 1989;


6.大統領のみ

【解答】
f:id:rokuroneko:20210601212503p:plain

SELECT * FROM nobel 
WHERE winner IN 
('Theodore Roosevelt', 'Woodrow Wilson', 'Jimmy Carter', 'Barack Obama');


7.ジョン

【解答】
f:id:rokuroneko:20210601212629p:plain

SELECT winner FROM nobel WHERE winner LIKE 'John%';


8.異なる年度の化学賞と物理学賞

【解答】
f:id:rokuroneko:20210601212753p:plain

SELECT yr, subject, winner FROM nobel 
WHERE (subject = 'Physics' AND yr = 1980) 
OR (subject = 'Chemistry' AND yr = 1984);


9.化学と医学を除く

【解答】
f:id:rokuroneko:20210601212922p:plain

SELECT yr, subject, winner FROM nobel 
WHERE yr = 1980 
AND subject NOT IN ('Chemistry', 'Medicine');


10.初期の医学と最近の文学

【解答】
f:id:rokuroneko:20210601213030p:plain

SELECT yr, subject, winner FROM nobel 
WHERE (subject = 'Medicine' AND yr < 1910) 
OR (subject = 'Literature' AND yr >= 2004);


11.ウムラウト

【解答】
f:id:rokuroneko:20210601213218p:plain

SELECT * FROM nobel WHERE winner = 'PETER GRÜNBERG';


12.アポストロフィ

【解答】
f:id:rokuroneko:20210601213355p:plain

SELECT * FROM nobel WHERE winner = 'EUGENE O''NEILL';


13.騎士の領土

【解答】
f:id:rokuroneko:20210601213526p:plain

SELECT winner, yr, subject FROM nobel 
WHERE winner LIKE 'Sir%' ORDER BY yr DESC, winner ASC;


14.化学賞と物理賞は末尾に

【解答】
①:subject IN ('Physics' , Chemistry')を使用するとエラーになる
②:問題に沿った解答になっていると思うが正解できない

f:id:rokuroneko:20210601214018p:plain

■ 2021.6.18 追記
f:id:rokuroneko:20210618194312p:plain

SELECT winner,subject FROM nobel WHERE yr = 1984
ORDER BY 
(CASE subject
WHEN 'Chemistry' THEN 1
WHEN 'Physics'   THEN 2
ELSE 0 END), subject, winner