こんにちは、あおです\(^0^)/
今日講師から「お昼を食べないのか」と聞かれました。お腹が空かないわけではないのですが、
毎時間ずっとジュースを飲んでいるため、あまりご飯を食べたいという気持ちにならなくて…。
心配していただきましたが、ほんとに栄養失調で倒れたらどうしよう(笑)。
こんな毎日多量のジュースを飲んでいるが、大丈夫なのだろうか…。
なんか落ち着かないんですよね、飲み物が近くにないと…。
タバコ中毒に似ているんでしょうか…。
私はタバコの臭いが嫌いなのでタバコは吸わないのですが(笑)。
そういえば昨日、家に帰る途中とある出来事が起こりまして。
いつも通りスーパーで買い物をした後帰り道を歩いていると…。
女性「こんばんわぁ~」
夜道で急に声をかけられて、私は思わずハッとしました。
携帯をいじってたからなおさらびっくりしましたが…。
なんだろうと思って話を聞いたら…。
営業でした。
女性「テレビで紹介された商品を売ってるんですけど、お1ついかがですかぁ~」
自分「そうなんですね…。いあーーまぁ、大丈夫かな((;’∀’))」
女性「甘いのとかお好きじゃないですか?チョコとか生クリームが入っているんですけど~」
自分「ごめんなさい、自分甘いのは好きじゃないんですよ。チョコとか嫌いなので…。」
女性「いちご味もあるんですよ~」
自分「いちごはもっと嫌いです…。そもそも甘い食べ物は買わないんですよ。」
女性「ならチーズケーキとかどうですか?このチーズケーキは甘くなくて美味しいですよ!」
自分「まぁ、食べれなくはないですが…。」
女性「良かったら見ていってくださーい」
そういって女性は台車の中からメニューを取り出し、私に差し出してきた。
自分「(てかほんと甘いの多いな………。えっチーズケーキ1200円するじゃん、たかっ!!!)」
女性「どうですか?人気の商品も多くて…。売り切れてしまったのも多いんですよ」
自分「へぇーそうなんですね…。まぁチーズケーキ買ってもなぁ…。」
女性「誕生日の方とかいらっしゃったりしませんか?1ヶ月以上日持ちするので~」
自分「あっ、自分が一昨日誕生日でした…。」
女性「おめでとうございます!ケーキ食べましたか?」
自分「いや、ケーキ買う機会もなかったので…。」
女性「なら是非とも(*’ω’*)甘くないのでオススメですよぉ~」
自分「…はい、…じゃあ1つください。」
女性「ありがとうございます!」
こうして買う気がなかったチーズケーキを買ってしまいました(・・ ; )
まぁ見知らぬ私に声かけて頑張ってたし、寒い中サジェストしてくれたからと…。
こんな経験は人生初めてです…。1000円もあればおいしいお刺身買えたのに(><)
ネタになったからよしとしよう(笑)。
チーズはめっちゃ好きなので!せっかくの機会だったし、大事に食べたいと思います(^0^)/
雑談はここまで!本日の研修内容を書いていきます。
◆本日の内容
今日はJavaの課題「7.テーブル結合」をメインに学習しましたが、前回のブログでお伝えした通り、
「副問い合わせ」を記載したいと思います。
今日は主に以下の内容を学習いたしました
・グループ化
・副問い合わせ
・テーブル結合
◆所感
副問い合わせはほんと難しかったです…。そもそも副問い合わせと聞いて、イメージしづらい言葉で…。
今までSQLではSELECTで目的とする列を指定していましたが、なんとこのSELECTを2度以上
使うという…。そしてより細かく指定するのに用いるときに使います。
簡単なイメージでいうとSELECT文に対して更にSELECT文を用いる感じです。
~売上記録・返品記録~
SELECT * FROM test.products; INSERT INTO test.products VALUES (1,"りんご",200,0), (2,"バナナ",150,0), (3,"みかん",100,0), (4,"ぶどう",250,0), (5,"スーパードライ",300,1), (6,"ミルクティー",100,1); /* データの消去 */ SELECT * FROM test.products; TRUNCATE TABLE test.products; /*売れてない商品名一覧の抽出*/ SELECT product_name FROM products WHERE product_code NOT IN ( SELECT product_code FROM sales ) ; /* 返品されてしまった商品名一覧の確認方法 */ SELECT product_name FROM products WHERE product_code IN ( SELECT product_code FROM sales WHERE sale_type = -1 ) ; /* スーパードライの売れた本数 */ SELECT product_code, product_name, ( SELECT SUM(sale_count) FROM sales WHERE sale_date BETWEEN "2019-06-01" AND "2019-08-31" ) AS total FROM products WHERE product_code = 5 ; /* 返品を考慮した売上数量 */ SELECT product_code, ( CASE sale_type WHEN -1 THEN -sale_count ELSE sale_count END ) AS sale_count_tmp FROM sales; SELECT product_code, SUM(sale_count_tmp) AS total_count FROM ( SELECT product_code, ( CASE sale_type WHEN -1 THEN sale_count * -1 ELSE sale_count END ) AS sale_count_tmp FROM sales ) AS dm GROUP BY product_code ORDER BY total_count desc;
SELECT * FROM test.sales; INSERT INTO test.sales VALUES (200,2,1,"2020-02-10",1), (300,3,3,"2020-02-10",1), (400,4,3,"2020-02-10",1), (500,5,20,"2019-07-07",1), (600,5,40,"2019-08-01",1), (700,5,30,"2019-10-01",1), (800,6,70,"2020-02-01",1), (900,6,5,"2020-02-02",-1);
上記の通り、SELECTの中でSELECTを使っていますが、これが副問い合わせです。私も初めて見たとき
混乱していてよくわからなかったのですが、一つ一つ落ち着いて見ていけば、何をしているかわかります。
例えば17行目の”売れてない商品名一覧の抽出”では、いつも通りテーブルの指定やカラムの指定は
問題ないと思います。副問い合わせと NOT IN を組み合わせることによってsalesテーブルに
product_codeの値がないものを指定しています。 今回の場合、以下のような出力になります。
product_name
——————————————
りんご
また、33行目の”返品されてしまった商品名一覧の確認方法”ではWHEREで条件を指定していてsalesテーブルの
product_codeの値が一致したものを指定しています。 今回の場合、以下のような出力になります。
product_name
——————————————
ミルクティー
また、51行目の”スーパードライの売れた本数”では、6月~8月と問題文にて指定があったのでWHEREで条件を
指定しつつさらにBETWEENで日にちのどっからどこまでを指定しました。カウント数にはtotal というカラム名を
つけました。外側ではスーパードライを指定するため、ここでもWHEREを使います。 今回の場合、以下のような
出力になります。
SUM(entry_exit)| product_name | total
—————————————————————————————
5 | スーパードライ | 60
また、72行目の”返品を考慮した売上数量”ではsale_count_tmpというカラムを作っています。
sale_countの値がマイナスであれば返品の記録であり、逆にプラスであれば売上の記録である。
このことをCASE式にて条件を指定しています。そしてsale_count_tmpにて各値を表示しています。
あとはSUMを使って返品を考慮した売上数量を表しています。 今回の場合、以下のような出力になります。
product_code | sale_count_tmp
—————————————————————
2 | 1
3 | 3
4 | 4
5 | 20
5 | 40
5 | 30
6 | 70
6 | -5
product_code | total_count
—————————————————————
5 | 90
6 | 65
3 | 3
4 | 3
2 | 1
◆一言
今回、副問い合わせについてブログを記載しました。SELECT文をSELECTで指定するという文字だけだと
何を意味しているのかわかりづらかったです。ただ実際にテーブルを作って記述していくと、どこで何を指定して
いるのかを考えながらできたのでよかったです。
次回は「Java課題」について記載したいと思っております。
では皆さん、次回のブログまでさようなら(*’ω’*)