0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第2回 SQL勉強日記 問題解答 難易度★★★☆☆ 内容:WHERE, JOIN, GROUP BY

Posted at

こんにちは!

元気よく挨拶したところで早速前回紹介しましたサイトにて
クエリをガンガン書いていきます!

ちなみに第1回はこちらです!

https://qiita.com/shomacchi98/items/cba4e2e706b82be72062

私の4月から始まった研修はデータベース関連と
SQLが一旦落ち着きまして
TableauというBIツールの研修に入りました
私的にはこのTableauの方がつらいのですが
SQLとDB関連の知識が薄まらないようにしたいので
自主学習はSQLを書いていきます~

SQL練習問題-問2

image.png
問題はこちらです。
全然いけそうですね~

想定される出力はこちら!
image.png

【私の答え】
image.png
【出力結果】
image.png

完璧です!次!

SQL練習問題-問3

image.png
問題はこちら!
ここでテーブルを見て気が付きます
image.png
身長データがあるテーブルに国名がねぇ...
これは3問目にして早くもJOINの登場ですね!
JOINはテーブルを結合できる優れもの!
早速クエリを書いていきます!
【想定出力結果】
image.png

【私の答え】
image.png
【出力結果】
image.png

なんか違くねぇか!?

国名と平均身長はなんとなく出ているので
順番を変える箇所が問題ありと思ったので...

【私の答え2】
image.png

あくまで練習用ということで名前を一文字にして
すぐ書き直せるように調整...笑
ちょっと細かく説明すると今回欲しいデータは
とりあえず国名と平均身長なわけです
それでASで名前付けをします
問題文にFROMはcountriesでと
しっかり指定がありますのでそれに従い
FROMを埋めていきます!
そこにplayersテーブルをJOINします
今回はcountriesテーブルのidと
playersテーブルのcountry_idをもとに
JOINしています
GROUP BYでグループ化をします
今回はc.idとc.nameの2カラムでやってます
理由としてはc.idのみでグループ化を行うと
SELECT句でc.nameが使用できないからです。
(ここはSQLの実行順序について勉強してください)
c.nameのみでもいいですが、
c.nameにかぶりが無いとも言い切れないので
一旦両方でグループ化しています

【出力結果】
image.png

ちゃんと出てきましたね~
一回やらかしましたね...お恥ずかしい

まとめ

今回は割と簡単かつ重要なポイントを
おさらいすることができました!
ナメてかかったので普通に間違えました笑
修正できれば問題なし!
それではまた次回!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?