データアナリストが使うツールに関する学習。
スプレッドシートは割愛。
SQL
SQL(Structured Query Language)、つまり構造化された問い合わせ言語は大規模データを扱う際にとても便利。
SQLにはいくつかの種類がある。一般的なものにはOracle、Microsoft、MySQLなど色々ある。国際規格として統一されているので、基本的には似た形式で扱うことが可能。
なぜスプレッドシートで足りない?
数千、数万行やそれ以上の大規模なデータを取り扱うのはスプレッドシートでは限界がある。SQLは高速動作することが求められているため、スピーディにデータを取得することができる。
3つの基本構文
SELECT
欲しい列を指定
FROM
求めるデータを含むテーブルを指定
WHERE
データをフィルタ
基本構文を使った例(BigQuery)は…
SELECT
CatFirstName
FROM
CatData.CatName
WHERE
CatFirstName = 'Mike'
CatFirstName列を求める。この列はCatDataデータセットのCatNameテーブルにある。CatFirstNameが「Mike」だけを求める。
これだとMikeというデータだけが返ってくるので、実際は他の列データも合わせて求める。WHEREでフィルタを複数指定することももちろん可能。
SELECT -- コメントは-を2つ繋げた後に記述する
CatId,
CatFirstName,
CatLastName
FROM -- SQLステート文は大文字
CatData.CatName
WHERE
CatId > 0
AND CatFirstName = 'Mike'-- 合致するもの。合致しないものは <>で指定
AND CatLastName = 'Tama' -- 末尾にセミコロンをつけると明示的に終了を意味する
少し使える形になった。複数列はカンマでつなぎ、フィルタ条件はカンマなしのANDなど条件を使ってつないでいく。
新しい言語を覚えるのは、言葉を覚えるのと同じ。
SQL構文
LIKE句とワイルドカード
WHERE
CatFirstName LIKE 'Mi%' -- LIKE はパターンを探す時に使う。%はワイルドカード(*の場合もある)
-- この場合、Mikeも返るし、Mikenekoも返る
エイリアス
CatFirstName AS FirstName -- エイリアスを作成
SELECT
FirstName
エイリアスを作れば元データを改変せずにコードの見通しがよくなる。