概要:このチュートリアルでは、AVG()、COUNT()、MIN()、MAX()、およびSUM()を含むSQL集計関数について学びます。
SQL集計関数は、値の集合に対して計算を行い、単一の値を返します。たとえば、平均関数(AVG)は値のリストを受け取り、平均を返します。
集計関数は値の集合に対して動作するため、多くの場合、GROUP BY句を伴うSELECTステートメントで使用されます。GROUP BY句は結果セットを値のグループに分割し、集計関数は各グループに対して単一の値を返します。
以下は、集計関数がGROUP BY句とともに使用される方法を示しています。
SELECT c1, aggregate_function(c2)
FROM table
GROUP BY c1;Code language: SQL (Structured Query Language) (sql)以下は、一般的に使用されるSQL集計関数です。
-
AVG()– 集合の平均値を返します。 -
COUNT()– 集合内のアイテム数を返します。 -
MAX()– 集合内の最大値を返します。 -
MIN()– 集合内の最小値を返します。 -
SUM()– 集合内のすべての値または異なる値の合計を返します。
COUNT()関数を除き、SQL集計関数はNULLを無視します。
集計関数は、以下の場合にのみ式として使用できます。
AVG
AVG()関数は、集合内の平均値を返します。以下は、AVG()関数の構文を示しています。
AVG( ALL | DISTINCT)Code language: SQL (Structured Query Language) (sql)ALLキーワードは、AVG()関数にすべての値の平均を計算するように指示し、DISTINCTキーワードは、関数に異なる値のみを操作するように強制します。デフォルトでは、ALLオプションが使用されます。
次の例は、AVG()関数を使用して各部門の平均給与を計算する方法を示しています。
SELECT
department_name, ROUND(AVG(salary), 0) avg_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
MIN
MIN()関数は、集合の最小値を返します。以下は、MIN()関数の構文を示しています。
MIN(column | expression)Code language: SQL (Structured Query Language) (sql)たとえば、次のステートメントは、各部門の従業員の最小給与を返します。
SELECT
department_name, MIN(salary) min_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
MAX
MAX()関数は、集合の最大値を返します。MAX()関数には次の構文があります。
MAX(column | expression)Code language: SQL (Structured Query Language) (sql)たとえば、次のステートメントは、各部門の従業員の最高給与を返します。
SELECT
department_name, MAX(salary) highest_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
COUNT
COUNT()関数は、集合内のアイテム数を返します。以下は、COUNT()関数の構文を示しています。
COUNT ( [ALL | DISTINCT] column | expression | *)Code language: SQL (Structured Query Language) (sql)たとえば、次の例では、COUNT(*)関数を使用して、各部門の従業員数を返します。
SELECT
department_name, COUNT(*) headcount
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
SUM
SUM()関数は、すべての値の合計を返します。以下は、SUM()関数の構文を示しています。
SUM(ALL | DISTINCT column)Code language: SQL (Structured Query Language) (sql)たとえば、次のステートメントは、各部門のすべての従業員の給与の合計を返します。
SELECT
department_id, SUM(salary)
FROM
employees
GROUP BY department_id;
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、AVG()、COUNT()、MIN()、MAX()、およびSUM()関数を含む最も一般的に使用されるSQL集計関数を学習しました。