SQL基本知識(SELECT,WHERE,集計関数,GROUP BY)

2023/07/18に公開

PythonやRを扱うにはSQLの知識があった方がいい!らしいです!

SQLのメリット

  • データ分析はもちろんビジネスサイドでも活躍できる
  • 欲しいデータを取り出すことが可能となる

SQLの注意点

  • 複雑な集計はPythonやExcelでやった方が早いこともある
  • どこにどんなデータが格納されているのかを把握しておかなくてはいけない!

基本的なSQLの4つの構文を自分のためにまとめておきます!

SELECT文

  • テーブルにデータを挿入するINSERT
  • テーブルからデータを削除するDELET
  • テーブルを更新するUPDATE
  • データを抽出するSELECT

データベースエンジニアでなければSELECT以外はあまり使わないのでまずはSELECTを覚える!

このような購入データがあるとして

名前 性別 購入金額
ボブ 1000
サム 2000
サリー 3000
エリー 4000
SELECT * FROM テーブル名

「*」を使うと全てのデータを抽出できる!
そのため上記のコードを使うことによって

名前 性別 購入金額
ボブ 1000
サム 2000
サリー 3000
エリー 4000

名前,性別,購入金額,全てがそのまま出てくる!
もし名前だけ抜き出すのであれば以下のコードを使う!

SELECT 名前 FROM テーブル名

そうすると

名前
ボブ
サム
サリー
エリー

このように名前だけが表示される!

WHERE文

名前 性別 購入金額
ボブ 1000
サム 2000
サリー 3000
エリー 4000

もし男性だけの名前と購入金額が知りたいのであれば以下のコード

SELECT 名前,購入金額 FROM テーブル名 WHERE 性別="男"

そうすると

名前 購入金額
ボブ 1000
サム 2000

このように抽出される!

集計関数

男性だけの合計購入金額を知りたいのであればSUM関数を使う!
AS ~~でわかりやすい名前をつけることができる!

SELECT SUM(購入金額) AS 合計購入金額 FROM テーブル名 WHERE 性別 ="男"

合計購入金額
3000

平均購入金額を知りたいならAVG関数

SELECT AVG(購入金額) AS 平均購入金額 FROM テーブル名 WHERE 性別 ="男"

平均購入金額
1500

GROUP BY

男性の合計購入金額と女性の合計購入金額を求めるには

SELECT SUM(購入金額) AS 合計購入金額 FROM テーブル名 WHERE 性別 ="男"
SELECT SUM(購入金額) AS 合計購入金額 FROM テーブル名 WHERE 性別 ="女"

というコードになるが、性別ごとに打つのは面倒くさいですね
そんな時に役立つのがGROUP BYです!

SELECT SUM(購入金額) AS 合計購入金額 FROM テーブル名 GROUP BY 性別

性別 合計購入金額
3000
7000

このようにGROUP BYを使うと指定した列に入っている要素ごとの集計結果を算出してくれます!
すっきりしてる!

日別の売上,月別の売上,年代別の売上等、条件を絞った上での集計に役立ちます!

複雑な集計はPythonやExcelでやった方が早いこともある

Discussion