こんにちは!
データサイエンティストのウマたん(@statistics1012)です。
SQLが使えるようになると、データベースから自分で自由にデータを引っ張ってくることができるので便利!
とは言え、
いえいえ、実はSQLに必要なのは基本的にSELECT文だけ!
他の言葉は、あくまで修飾語なんです。
とりあえず、SELECT文さえ抑えちゃえばとりあえずはSQLマスター!笑
データベースにデータを挿入したり加工したりする場合は、他の命令文も覚える必要ありますが、デジタルマーケターであればデータを引っ張ってくるだけなのでSELECT文だけで良い!
また、データサイエンティストが使うのはPythonのイメージがあるかもしれないですが、実はSQLを使う時間の方が長いんです!
機械学習を使う時も前処理やデータ加工にめちゃくちゃSQLを使います!
そんなこんなでとりあえずSQL文マスターしちゃいましょう!
この記事では、SQL初心者向けに書き方に関してまとめていきます!
この記事でお伝えしていることだけ覚えておけば基本は大丈夫です!
以下のYoutube動画でも分かりやすく解説しているので是非見てみてください!
ちなみに僕のUdemy講座でSQLのデータ加工集計100本ノックを提供していますので、ぜひ興味のある方は挑戦してみてください!
【超実践】SQLのデータ加工集計100本ノック!BigQueryで学ぶSQLの超実践講座!
【時間】 | 4.5時間 |
---|---|
【レベル】 | 初級〜中級 |
SQL✕データ集計・加工処理の100問に挑戦して腕試ししたいならこれ!今なら購入時に「VGRBCQDF」という講師クーポンコードを入れると94%OFFになりますのでぜひご受講ください!
SELECT文の使い方
まず、SELECT文の使い方からです。
ここで下のようなテーブルがあったとしましょう!
名前 | 性別 | 購入金額 |
ウマたん | 男 | 1000 |
ロボたん | 男 | 2000 |
デジ子 | 女 | 4000 |
デジ郎 | 男 | 3000 |
このテーブルでは、顧客の購入フローを管理しています。
簡易的に名前と性別、売上という列を入れました。
さて、まずはデータを取り出してみましょう!
SELECT * FROM テーブル名
SELECTで欲しい情報を指定し、FROMでどこから持ってくるか明記する。
基本的にはこれだけです。
この時、*を使うと、全ての情報が抽出されます。
今回の場合、テーブル名はorder_tebleなので、このように記述してあげましょう!
SELECT * FROM order_table
結果はもちろん全ての行・列が取り出されるのでこのようになりますね!
名前 | 性別 | 購入金額 |
ウマたん | 男 | 1000 |
ロボたん | 男 | 2000 |
デジ子 | 女 | 4000 |
デジ郎 | 男 | 3000 |
名前だけ取り出したい!そんな時は名前を指定してあげましょう!
SELECT 名前 FROM order_table
これを実行すると以下のような結果が返ってきます。
名前 |
ウマたん |
ロボたん |
デジ子 |
デジ郎 |
簡単ですね。
WHERE句の書き方
さて、続いて、男性だけの売上が知りたいとします。
この時も基本的には売上を引っ張ってくるということを意識して、まずは以下のように記述しちゃいましょう!
SELECT 名前、購入金額 FROM order_table
このように記述した場合、全員分の購入金額が以下のように取り出されますね。
名前 | 購入金額 |
ウマたん | 1000 |
ロボたん | 2000 |
デジ子 | 4000 |
デジ郎 | 3000 |
しかし、この場合は男性だけの売上が知りたい!
そんな時はWHERE句を使います。
SELECT 名前、購入金額 FROM order_table
WHERE 性別=”男”
WHERE句のあとに条件を持ってくることである一定のセグメントに絞ることができます。
このように絞ると、こんな感じの結果になりますね。
名前 | 購入金額 |
ウマたん | 1000 |
ロボたん | 2000 |
デジ郎 | 3000 |
集計関数の書き方
せっかく男だけの売上が取れたので合計してみましょう。
合計値を出すときはSUM関数を使います。
SELECT SUM(購入金額) AS 合計購入金額 FROM order_table
WHERE 性別=”男”
結果は以下のようになりますね。
合計購入金額 |
6000 |
ASでSELECTで引っ張ってきた値に対して分かりやすい名前を付けることができます。
また平均を求めたい時は、AVG関数を使いましょう!
SELECT AVG(購入金額) AS 平均購入金額 FROM order_table
WHERE 性別=”男”
これで男性の平均購入金額が求められました!
平均購入金額 |
2000 |
この時、集計結果から名前がなくなっていることに注意しましょう。
集計関数を用いて列を引っ張ってくる場合、他の列名にも集計関数を用いないとエラーが起きます。
GROUP BYの書き方
続いて、頻繁に使うGROUP BY句の書き方について見ていきましょう!
名前 | 性別 | 購入金額 |
ウマたん | 男 | 1000 |
ロボたん | 男 | 2000 |
デジ子 | 女 | 4000 |
デジ郎 | 男 | 3000 |
この時、WHERE句と集計関数を用いてこのように記述すると
SELECT SUM(購入金額) AS 合計購入金額 FROM order_table
WHERE 性別=”男”
男だけの合計購入金額が出てきます。
女性の合計金額を算出したい時はWHERE句の条件のところを女にすれば良いですね。
ただ、いちいち性別ごとにWHERE句で指定するのは面倒くさい。
そんな時は、GROUP BY句を使いましょう!
SELECT 性別、SUM(購入金額) AS 合計購入金額 FROM order_table
GROUP BY 性別
結果は以下のようになります。
性別 | 合計購入金額 |
男 | 6000 |
女 | 4000 |
GROUP BYを使うと指定した列に入っている要素ごとの集計結果を算出してくれます。
実務では、日別の売上・月別の売上・年代別の売上など、条件を絞った上での集計が多くなりますのでGROUP BYは必須の関数です。
GROUP BYを使って上手くデータを集計していきましょう!
SQLの書き方 まとめ
いかがだったでしょうか?
SQLって実はめちゃくちゃ単純なんです!
是非マスターして、データベースから欲しいデータをゴリゴリ引っ張ってこれるようになりましょう!
SQLはSELECT文さえ覚えてしまえばオーケー!
SQLについて勉強するなら以下の本が非常にオススメ!
(2024/11/21 13:58:44時点 Amazon調べ-詳細)
SQLの勉強法やオススメ本をこちらでまとめているので勉強したい方は是非見てみてください!
また当メディア「スタビジ」が運営しているスクール「スタビジアカデミー(スタアカ)」では、SQLのもっと踏み込んだ実践について学べるので是非チェックしてみてください!
スタアカ以外にも多くのSQLを学べるスクールがあります。以下にまとめているので是非チェックしてみてください!
自分で環境構築するのが面倒な人はクラウドサービスのBigQueryの利用をおすすめします。下記の記事で解説しているのでチェックしてみてください。