投稿

5月, 2026の投稿を表示しています

5月22日(金)3コマ目

イメージ
今日、やったこと case式(以前からのつづき) 今日のホワイトボード case式はselect句以外でも使える。 関数内にcase式 case式の結果を使って関数が動く。 図 関数内にcase式 実行順序は以下の順。 ①case式で性別列の値から集計用人数を生成 図 case式で性別列から集計用人数を生成 ②case式で生成した集計用人数の総和をsum()で計算 図 case式で生成した集計用人数の総和を計算 group by句にcase式 case式の結果でグループ化。 図 group by句にcase式 実行順序は以下の順。 ①case式で給与列の値からxx円台を生成 図 case式で給与列の値からxx円台を生成 ②case式で生成したxx円台でグループ化、各グループの行数をカウント 図 xx円台でグループ化、行数カウント [練習問題]case 問1~問4 case式確認時に使った従業員マスタテーブルは削除。 3つのテーブル作成は以下のとおり。 問5、問6 以前使った 商品マスタテーブル 売上データテーブル を使ってください。 次回は 練習問題の解説。  

5月12日(火)4コマ目

イメージ
今日、やったこと [確認テスト 解説]確認テスト1 今日のホワイトボード [確認テスト 解説]確認テスト1 前回やった確認テストの解説。 問1 「贔屓店舗名」列はない。「店舗名」列に命名した別名。 顧客IDの昇順で並び替えを忘れている人がちょこちょこ。 図 問1 正解例 問2 顧客マスタを自己結合する問題。 図 問2 正解例 以下でも表示は同じですが、以前からちょこちょこ言っていたテーブルの別名と使われ方が一致しません。テーブルの別名と使われ方が一致しないのは×です。 図 問2 テーブルの別名と使われ方が一致しない 問3 贔屓顧客がいない店は、店舗マスタが全行出力されるように顧客マスタと外部結合すると、顧客マスタの列がnullになっている。 図 問3 ① 贔屓顧客がいない店は この結合結果に顧客マスタの列がnullな行を検索すればいい。 図 問3 正解例 nullか否かは is null 。 問4 ちょっと難しいが、問2の応用。 問2は被紹介者(紹介される側)と紹介者(紹介する側)の組み合わせ。 問4では逆に紹介者(紹介する側)と被紹介者(紹介される側)の組み合わせ。 まずは問2のselect句の紹介者と被紹介者を入れ替えると以下のように、この人が紹介したお客さんのようになる。 図 問2のselect句を入れ替え 紹介者がいない人は不要なので、外部結合ではなく、等価結合に変更。 図 外部結合 -> 等価結合 で紹介者がいない顧客を出力しない 紹介者でグループ化、各グループの行数がその人が紹介したお客さんの人数。 図 紹介者でグループ化、行数をカウント 次回は caseのつづき。  

5月8日(金)3コマ目

イメージ
今日、やったこと [確認テスト]確認テスト1 CASE 今日のホワイトボード 単純CASE式と検索CASE式の違い 図 単純CASE式と検索CASE式 単純CASE式は式と比較値が一致する、しないに対して、検索CASE式は条件式が使える。 よって、 単純CASE式でできることは検索CASE式でもできる 検索CASE式でできることの一部は単純CASE式ではできない となる。 単純CASE式 式が比較値と一致すれば、値を返す。 どの比較値とも一致しないときは、(あれば)else以降のデフォルト値を返す。 もし、"else デフォルト値"がなければ、nullを返す。 図 単純CASE式 検索CASE式 when以降の条件式を評価し、OKなら値を返す。 どの条件式もOKにならないときは、(あれば)else以降のデフォルト値を返す。 もし、"else デフォルト値"がなければ、nullを返す。 図 検索CASE式 次回は CASE式のつづき。