AVGは平均値 (average) を返すSQL関数です。この記事では、AVGの使い方をサンプルを交えてご紹介します。
DBMS | AVG |
---|---|
MySQL | ✓ |
Oracle | ✓ |
PostgreSQL | ✓ |
SQL Server | ✓ |
avgは平均値を返す集合関数です。
AVG([ALL|DISTINCT] expr)
ALL
SQL> SELECT sal FROM emp;
EMP
-------
6000
3000
3000
SQL> SELECT AVG(ALL sal) FROM emp;
AVG(sal
-------
4000
DISTINCT
SQL> SELECT sal FROM emp;
EMP
-------
6000
3000
3000
SQL> SELECT AVG(DISTINCT sal) FROM emp;
AVG(sal
-------
4500
社員表(emp)から給料(sal)の平均値を求める。
SELECT AVG(sal) FROM emp
AVG 関数では、NULL は平均値を計算する分子にも分母にも影響を与えない。つまり、無視される。
SQL> SELECT sal FROM emp;
EMP
-------
6000
NULL
4000
SQL> SELECT AVG(sal) FROM emp;
AVG(sal
-------
5000
ただし、すべての値が NULL だった場合は、結果も NULL となる。
平均以上の値を求めるには、副問い合わせを利用する。
SELECT sal FROM emp WHERE sal >= (SELECT AVG(sal) FROM emp);
平均以下の値を求めるには、副問い合わせを利用する。
SELECT sal FROM emp WHERE sal <= (SELECT AVG(sal) FROM emp);