復習1
復習2
既出キーワードと記号 こちらを見てクエリの機能を思い出せますか?
ノーベル賞テーブルでSUMとCOUNT関数を練習
のSQL入力欄を利用して以下を復習する
insert into values
update set where
select a,b,c
select a/b,a*b,a+b,a-b
select a as x
select *
select count(*)
select sum(a)
select distinct a,b,c
from
where
X in (a,b,c)
X and Y
X or Y
not X
X between A and B
X like
(order by)
,
*
'
<>
=
>
<
>=
<=
%
_
今回の内容:
SQLの selectにおける 集計関数 サブクエリ― グループ化 並べ替え について学ぶ
新出キーワード
集計関数 count sum avg max min
group by
having
all
any
order by
前回と同様に歯車アイコンから設定を変更する。
DBMSを MySQL に切り替える
SQLZOO(日本語のチュートリアルページ)
問3 5 SUM and COUNT の問題 6. 各大陸の国の個数を数える
を参考にして自作の問題を作成して自分で回答する。
SQLZOOのSQL入力欄を利用する
「#」記号に続けて【自作の問題文】を記入する
自作問題の【解答SQL】を記入して Submit SQLで実行する
問題とSQLと実行結果をスクリーンショットに撮る
複数の問題を考えた場合は1枚の画像にまとめて提出してよい
(自作の問題を実行しても正解判定のアイコンは表示されない)
配点: 問題の難易度に応じて点数を与える
学習した内容をなるべく多く反映するように工夫するとよい
新しく登場したキーワードやテクニック、または復習となるような問題でもよい
解答例
(補足)
4-7 各大陸のもっとも大きな国(面積で)の大陸、国名、面積を表示する。
※自己相関クエリー というテクニックを利用して解きます。
SELECT continent, name, area FROM world x
WHERE area >= ALL
(SELECT area FROM world y WHERE y.continent=x.continent)
テーブル名 world を別名 x と y で参照している。 テーブル名 as 別名 の構文で as は省略可能。
条件式 >= ALL について
内側のサブクエリの検索結果が テーブル x で処理中のレコード(国)と同じ大陸にある各国の人口のという複数の値になる。ALLを指定するとそれら全ての値以上(自分自身の人口を含むので=が必要)かどうかを判定する。つまり最大の人口を判定できる。