SQLでデータ分析を効率化するための5つの重要クエリ:初心者から中級者へ、レベルアップガイド
~エクセルから卒業!SQLを駆使して、データ分析のプロフェッショナルへ~
データ分析の現場では、日々膨大な量のデータが生成されます。これらのデータを的確に処理し、有益な洞察を引き出すためには、強力なツールが必要です。その最有力候補こそが、SQL(Structured Query Language) です。
SQLは、データベースと対話し、データの抽出、加工、集計、分析を行うための標準言語です。エクセルでは手に負えない大量のデータを、高速かつ柔軟に処理できるため、データ分析の効率を飛躍的に向上させることができます。
この記事では、データ分析の初心者から中級者を目指す方々に向けて、SQLを使ったデータ分析を効率化するための5つの重要クエリを、具体的な例を交えながら詳しく解説します。これらのクエリをマスターすることで、あなたはデータ分析の新たなステージへと進むことができるでしょう。
1. データの宝庫から必要な情報をピンポイントで抽出:SELECT文とWHERE句
データ分析の最初のステップは、目的とするデータをデータベースから抽出することです。SQLのSELECT文は、まさにそのための強力なツールです。
基本的な構文は以下の通りです。
SQL
SELECT 列名1, 列名2, ...
FROM テーブル名
WHERE 条件式;
- SELECT 列名1, 列名2, …: 抽出したい列を指定します。
- FROM テーブル名: データが格納されているテーブルを指定します。
- WHERE 条件式: 抽出するデータを絞り込む条件を指定します。
例えば、顧客テーブルから、特定の地域(例えば「東京都」)に住む顧客の氏名と年齢を抽出したい場合は、次のようなクエリになります。
SQL
SELECT 氏名, 年齢
FROM 顧客テーブル
WHERE 地域 = '東京都';
WHERE句では、様々な演算子や論理演算子を組み合わせて、複雑な条件を指定することができます。
- 比較演算子:
=
,!=
,>
,<
,>=
,<=
- 論理演算子:
AND
,OR
,NOT
- その他演算子:
LIKE
,IN
,BETWEEN
,IS NULL
,IS NOT NULL
例えば、20代(20歳以上30歳未満)の女性顧客を抽出したい場合は、次のようなクエリになります。
SQL
SELECT *
FROM 顧客テーブル
WHERE 年齢 >= 20 AND 年齢 < 30 AND 性別 = '女性';
2. データの海から価値ある洞察を引き出す:GROUP BY句と集計関数
抽出したデータを集計し、傾向やパターンを把握することは、データ分析において非常に重要です。SQLのGROUP BY句と集計関数を組み合わせることで、データをグループ化し、様々な角度から集計することができます。
基本的な構文は以下の通りです。
SQL
SELECT 列名1, 集計関数(列名2), ...
FROM テーブル名
WHERE 条件式
GROUP BY 列名1;
- GROUP BY 列名1: 指定した列の値でデータをグループ化します。
- 集計関数: グループごとに集計を行う関数です。代表的な集計関数には、
COUNT
(件数)、SUM
(合計)、AVG
(平均)、MAX
(最大値)、MIN
(最小値)などがあります。
例えば、顧客テーブルから、地域ごとの顧客数を集計したい場合は、次のようなクエリになります。
SQL
SELECT 地域, COUNT(*) AS 顧客数
FROM 顧客テーブル
GROUP BY 地域;
また、地域ごとの平均年齢を算出したい場合は、次のようなクエリになります。
SQL
SELECT 地域, AVG(年齢) AS 平均年齢
FROM 顧客テーブル
GROUP BY 地域;
3. データの整理整頓:ORDER BY句とLIMIT句
集計結果を特定の順序で並べ替えたり、表示する件数を制限したりすることで、データをより見やすく、分析しやすくすることができます。SQLのORDER BY句とLIMIT句は、そのような場合に役立ちます。
- ORDER BY句: 指定した列の値でデータを並べ替えます。
ASC
(昇順)またはDESC
(降順)を指定できます。 - LIMIT句: 表示する行数を制限します。
例えば、地域ごとの顧客数を顧客数の多い順に表示し、上位3件のみを表示したい場合は、次のようなクエリになります。
SQL
SELECT 地域, COUNT(*) AS 顧客数
FROM 顧客テーブル
GROUP BY 地域
ORDER BY 顧客数 DESC
LIMIT 3;
4. 複数のテーブルを繋ぎ合わせる:JOIN句
複数のテーブルに分散しているデータを組み合わせて分析したい場合は、テーブルを結合する必要があります。SQLのJOIN句を使うことで、共通の列をキーとして複数のテーブルを結合し、関連するデータを一度に取得することができます。
代表的なJOIN句には、INNER JOIN
(内部結合)、LEFT JOIN
(左外部結合)、RIGHT JOIN
(右外部結合)、FULL JOIN
(完全外部結合)などがあります。
例えば、顧客テーブルと注文テーブルを顧客IDをキーとして結合し、顧客ごとの注文履歴を表示したい場合は、次のようなクエリになります。
SQL
SELECT 顧客.氏名, 注文.注文ID, 注文.注文日
FROM 顧客テーブル AS 顧客
INNER JOIN 注文テーブル AS 注文
ON 顧客.顧客ID = 注文.顧客ID;
5. より高度なデータ抽出:サブクエリ
複雑な条件でデータを抽出したい場合は、サブクエリを使用します。サブクエリとは、クエリの中に埋め込まれたクエリのことで、入れ子構造にすることができます。
例えば、平均年齢以上の顧客を抽出したい場合は、次のようなクエリになります。
SQL
SELECT *
FROM 顧客テーブル
WHERE 年齢 >= (SELECT AVG(年齢) FROM 顧客テーブル);
サブクエリを使うことで、より高度なデータ抽出が可能になり、データ分析の幅が広がります。
まとめ
この記事では、データ分析を効率化するための5つの重要クエリを、具体的な例を交えながら詳しく解説しました。これらのクエリをマスターすることで、あなたはSQLを使ったデータ分析の基礎を固め、より高度な分析へとステップアップすることができるでしょう。
SQLは、データ分析の強力な武器です。ぜひ積極的に学習し、データ分析のプロフェッショナルを目指してください。