• ブログ
  • >
  • [SQLの基本]集合関数入門: データを集計する基本クエリ

SQLの基本:集合関数入門:データを集計する基本クエリ

投稿日:

はじめに

SQLには、データを集計するための強力な機能が備わっています。集合関数を使用することで、データの平均、最大値、最小値、合計、カウントなどを簡単に取得できます。今回の記事では、これらの基本的な集合関数を紹介し、それぞれの使用例を解説します。

平均 (AVG)

AVG関数は、指定した列の平均値を計算します。

例 employeesテーブルから給与の平均値を取得するクエリは次の通りです。

SELECT 
  AVG(salary) AS average_salary 
FROM employees;

最大値 (MAX)

MAX関数は、指定した列の最大値を取得します。

例 employeesテーブルから最高給与を取得するクエリは次の通りです。

SELECT
  MAX(salary) AS highest_salary 
FROM employees;

最小値 (MIN)

MIN関数は、指定した列の最小値を取得します。

例 employeesテーブルから最低給与を取得するクエリは次の通りです。

SELECT 
  MIN(salary) AS lowest_salary 
FROM employees;

カウント (COUNT)

COUNT関数は、指定した条件に一致する行の数をカウントします。

例 employeesテーブルから従業員の総数を取得するクエリは次の通りです。

SELECT 
  COUNT(*) AS total_employees 
FROM employees;

合計 (SUM)

SUM関数は、指定した列の値の合計を計算します。

例 employeesテーブルから全従業員の給与の合計を取得するクエリは次の通りです。

SELECT 
  SUM(salary) AS total_salary 
FROM employees;

グループ化と集計 (GROUP BY)

集合関数は、GROUP BY句と組み合わせることで、特定のグループごとに集計を行うことができます。

例 employeesテーブルをdepartment_idごとにグループ化し、それぞれの部署の平均給与を取得するクエリは次の通りです。

SELECT 
  department_id, 
  AVG(salary) AS average_salary 
FROM employees GROUP BY department_id;

条件付き集計 (HAVING)

HAVING句を使用すると、GROUP BY句でグループ化した後のデータに対して条件を設定できます。

例 employeesテーブルをdepartment_idごとにグループ化し、平均給与が50000以上の部署のみを取得するクエリは次の通りです。

SELECT 
  department_id, 
  AVG(salary) AS average_salary 
FROM employees 
GROUP BY department_id 
HAVING AVG(salary) >= 50000;

集合関数とNULL

集合関数を使う際に注意すべき点として、NULLの扱いがあります。COUNT(*)を除く集合関数は、NULLの値を自動的に無視して計算します。

例えば、salary列に100, 200, NULLの3行がある場合:

AVG(salary) = 150(NULLを除いた2件の平均)

COUNT(salary) = 2(NULLを除いた件数)

COUNT(*) = 3(NULL含む全行数)

まとめ

今回は、SQLの基本的な集合関数について学びました。AVG, MAX, MIN, COUNT, SUMの5つの関数と、GROUP BYによるグループ化、HAVINGによる条件付き集計を押さえておけば、日常的なデータ集計に対応できます。

SheetFlow - 学んだSQLを業務で活かそう

SQLマーケティングアカデミーで身につけたSQLスキル、実務でも使ってみませんか?

SheetFlowは、ExcelファイルをアップロードしてSQLで直接操作できるクラウドサービスです。学んだSELECT文やJOIN、集計関数をそのまま業務データに適用し、手作業の集計を自動化できます。

SheetFlowを無料で試す