こんにちは、あおです\(^0^)/
今日は始発じゃなくて、少しお家でゆっくりしてから家を出たのですが…。
たとえ座れたとしても、やはり満員電車は慣れないものですね…。
乗り物酔いしやすいので、電車に長時間乗るのも嫌なのですが、更に人酔いもするという(泣)。
そして今日、皆さんに1番報告したいことはっ…。
先日行われた懇親会についてです!
とても楽しかったです~\(^0^)/ \(^0^)/ \(^0^)/ \(^0^)/ \(^0^)/ \(^0^)/ \(^0^)/
お会いしたことがない社内の方々にも会うこともでき、色々なお話を聞くことができました!
皆さん個性あふれる人たちで、もっといろいろなことを話したかったと思いました。2~3時間ほどだったので
あっという間に時間が過ぎてしまいました…。楽しい時間が過ぎるのはいつも早いです(・.・;)
次回も同様な会が開かれるようであれば、是非とも参加したいと思います!
企画していただいた上司に感謝です、ありがとうございます(>_<)
雑談はここまで!本日の研修内容を書いていきます。
◆本日の内容
今日もSQLの課題を進めました。
先日の復習と新しい項目「グループ化」を学習いたしました。両方の内容をブログに記載したいので、
今回のブログには先日の内容「関数」について記載いたします。
今日は主に以下の内容を学習いたしました
・関数を使った表記
・文字数の表記
・CASEを使った条件分岐からの表示
・文字の切り取りからの表示(STRINGS)
・グループ化
・副問い合わせ(少々)
◆所感
条件分岐…。Javaのif文と同じで「〇〇だったら表示」、「それ以外は△△」などをSQLで書くことを覚えました。
書き方もJavaに似ているような感じはあるのですが…。うまく頭に定着しない…。混同します…。
ただ使い慣れればとても便利な機能であると思ってます。表示させたい項目や数値を条件分岐して一発で
表示できるので、探したいデータを見つけるのが楽になりそうです。
~テストの結果と平均点~
SELECT * FROM test.testresult; INSERT INTO test.testresult VALUES ("SS10",86,50,68,91,null), ("SS11",65,53,70,null,68), ("SS12",null,59,99,36,64); /* SS10のnullを求めよ */ SELECT * FROM testresult WHERE id = "SS10"; UPDATE testresult SET average = ((86+50+68+91)/4) WHERE id = "SS10"; /* SS11のnullを求めよ */ SELECT * FROM testresult WHERE id = "SS11"; UPDATE testresult SET discussion = (68*4)-(65+53+70) WHERE id = "SS11"; /* SS12のnullを求めよ */ SELECT * FROM testresult WHERE id = "SS12"; UPDATE testresult SET national_language = (64*4)-(59+99+36) WHERE id = "SS12"; /* SQL分1つで3人の合計得点 */ SELECT id,(national_language + mathematics + chemistry + discussion)as "合計" FROM testresult; /* 260点以上合格、260点以下不合格 */ SELECT id, CASE WHEN (national_language + mathematics + chemistry + discussion) <=260 THEN "不合格" ELSE "合格" END AS "合否" FROM testresult; /* 260点に足りなかったものは残り何点必要だったのか */ SELECT id, CASE WHEN (national_language + mathematics + chemistry + discussion) <=260 THEN 260-(national_language + mathematics + chemistry + discussion) ELSE "合格" END AS "total" FROM testresult WHERE (national_language + mathematics + chemistry + discussion) <=260; /* 受験者IDの切り取り(数字のみ表記) */ SELECT SUBSTRING(id,3,2) FROM testresult;
asとはカラムの名前に別名を付けるときに使います。
例えば、54行目の”SQL分1つで3人の合計得点”では各idと合計点(科目の点数を足す計算)を選択しています。
ただ合計点を表示するカラムは今回のテーブルに存在しません。そんなとき「~as “合計” 」とするとカラムに
合計という名をつけて表示することができます。今回の場合、以下のような出力になります。
id | 合計
——————————————————
SS10 | 295
SS11 | 272
SS12 | 256
また、60行目の”260点以上合格、260点以下不合格 “ではCASEで条件分岐を用いて表示しています。
WHENの後には「どういった条件?」を入力します。今回は「260点を超えない場合」を入れております。
THENの後には「どうします?」を入力します。今回は不合格を表示したいので「不合格」を入れております。
ELSEの後には「そうでなかった場合」を入力します。 今回は260点を超える場合 「合格」 と表示されます。
CASEとENDの中に条件式を記載しています。ENDのあとのASでは、カラムに合否という名前を付けました。
今回の場合、以下のような出力になります。
id | 合否
——————————————————
SS10 | 合格
SS11 | 合格
SS12 | 不合格
◆一言
SQL、グループ化の次は「副問い合わせ」を学びます。今日一応内容については簡単に触れましたが、
まだまだ理解不足です…。SQLで一番難しい内容だと思いました。詳細については後日記載いたします。
習ったことはアウトプットできるよう、復習して忘れないようにしたいと思います。
あと少しでSQLも終わるので、終わり次第 Java Silver 取得に向けての学習を再開したいと思います!
では皆さん、次回のブログまでさようなら(*’ω’*)