2月17日(金)1、2コマ目
今日、やったこと
SQLのおさらい 練習問題解説
今日のホワイトボード
CS_売上データテーブル
CS_グループマスタやCS_商品マスタのようなxxxマスタテーブルは頻繁にデータが更新されることはない。また、別テーブルから参照されることが多い。
CS_売上データテーブルは1件の売上が発生すると、データが登録される。
イベントごとに更新されるテーブル。
![]() |
| 図 CS_売上データテーブル |
問1
特にややこしいことはないかと。
![]() |
| 図 問1 ヒント |
①売上IDの昇順で並び替え
②売上IDが同じ行を数量*価格の降順でさらに並び替え
です。
![]() |
| 図 売上IDだけで並び替え |
![]() |
| 図 売上IDの昇順で並び替え、さらに売上金額降順で並び替え |
問2
![]() |
| 図 問2 ヒント |
全売上での売上金額は以下のとおり。
![]() |
| 図 問2 全売上での売上金額 |
売上IDが1、2、3の行だけに絞ればよいので、where句で条件指定。
![]() |
| 図 問2 売上IDが1、2、3だけに絞り込む |
問3
![]() |
| 図 問3 ヒント |
![]() |
| 図 問3 全グループの売上金額 |
![]() |
| 図 問3 グループ毎の売上金額が18000以上 |
![]() |
| 図 問3 正解例 |
問4
![]() |
| 図 問4 ヒント |
where句で売上IDが1、2、3の行だけにし、そのあとグループする。
![]() |
| 図 問4 正解例 |
問5
いやらしいといえばいやらしいですが、問題文のなかにxxx毎やxxx別、各xxxのようなグループ化のキーワードがありませんが、グループ化必要です。
![]() |
| 図 問5 ヒント |
![]() |
| 図 問5 正解例 |
問6
商品ID、商品名を出力したい。 => 商品ID、商品名でグループ化
グループ化すると、select句に指定できるのは
- group by句に指定した列名
- グループ関数
のみ可。
![]() |
| 図 問6 ヒント |
![]() |
| 図 問6 正解例 |
問7
あいまい検索。
あいまい検索の演算子はlike。
DBによっては=でも動くものもあるが、likeを使うこと。
![]() |
| 図 問7 ヒント |
![]() |
| 図 問7 正解例 |
問8
「ただし、売上数量が10以上の商品」が
数量列が10以上 => 行に対する条件
商品ごとの数量の総和が10以上 => グループに対する条件
の2とおり考えられる。
問題では、「ただし、・・」の前に商品ごとの売上金額を出力とあるので、「ただし、・・」以降は商品ごとの売上数量と考えるのが自然。
![]() |
| 図 問8 ヒント |
![]() |
| 図 問8 正解例 |
次回は
「SQLおさらい」の問9、問10の解説のあと、Web+DBの確認テストをします。




















