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;
まとめ
今回は、SQLの基本的な集合関数について学びました。これらの関数を使用することで、データの集計や分析が簡単に行えるようになります。次回の記事では、さらに高度なSQLクエリやデータベース操作について詳しく解説していきます。ぜひご期待ください!