GROUP BYステートメントを使用してSQLでデータを集約し要約レポートを生成する方法

この記事では、SQLのGROUP BYステートメントを使用してデータを集約し、要約レポートを生成する方法について詳しく解説します。特に、ビジネスの現場でよく使われる具体的なケースに焦点を当て、理論だけでなく実践的な使い方も紹介します。

目次

GROUP BYステートメントとは

GROUP BYステートメントは、SQLでデータを特定の列(または複数列)で集約するためのステートメントです。このステートメントを使用すると、集計、平均、最大値、最小値などの要約情報を簡単に取得できます。

基本構文

基本的なGROUP BYの構文は以下のようになります。

SELECT 列名1, 列名2, 集計関数(列名3)
FROM テーブル
GROUP BY 列名1, 列名2;

GROUP BYの使用例

単一列での集約

例えば、従業員テーブル(employees)があり、部署ごと(department列)に平均給与(salary列)を知りたい場合のSQLは以下のようになります。

SELECT department, AVG(salary)
FROM employees
GROUP BY department;

複数列での集約

複数の列を使ってデータを集約することも可能です。以下は、部署と役職ごとに平均給与を計算する例です。

SELECT department, title, AVG(salary)
FROM employees
GROUP BY department, title;
部署役職平均給与
営業マネージャー500000
営業アシスタント300000
テーブル1: 部署と役職ごとの平均給与

HAVING句との組み合わせ

GROUP BYステートメントは、HAVING句と組み合わせて使うことで、集約後のデータに対してさらに条件を指定することができます。

SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 400000;

まとめ

GROUP BYステートメントは、SQLで非常に重要な集約操作を行うためのステートメントです。単一列だけでなく複数列での集約も可能であり、HAVING句と組み合わせることでより柔軟なデータ分析が行えます。ビジネスの現場でのレポート作成などに非常に役立つスキルであるため、ぜひマスターしてください。

コメント

コメントする

目次