SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access

AVG ( [ ALL | DISTINCT ] 数値列 )


戻り値 : 数値列の平均値

AVGは指定した数値列データの平均値を求めるときに使用します。

ALLキーワードはデフォルトであるため省略可能です。


関連キーワード





SQL実行例の説明(1)

T1_SAMPLE表からSALE平均値を取得します。


SELECT AVG ( SALE ) FROM T1_SAMPLE;


SQL実行の結果(1-1)

P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
AVG(SALE)
6800



SQL実行例の説明(2)

・T1_SAMPLE表からRATE平均値を取得します。

・DISTINCTキーワードを指定すると数値列に同じ値があるときは最初の一つだけを計算対象とすることができます。


SELECT AVG ( DISTINCT RATE ) FROM T1_SAMPLE;


SQL実行の結果(2-1)

・T1_SAMPLE表のRATEには2件の同じ値のデータが格納されています。

・DISTINCTキーワードが指定してされているのでP_IDZ00102RATE1.20は平均値を取得するとき計算の対象外となります。(左)


P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
AVG(DISTINCT RATE)
0.55



SQL実行例の説明(3)

・T1_SAMPLE表からSALE平均値を取得します。

・GROUP BYを指定するとグループ単位の平均値を求めることができます。


SELECT RANK, AVG ( SALE ) FROM T1_SAMPLE
GROUP BY RANK;


SQL実行の結果(3-1)

・T1_SAMPLE表のRANKA1, C1, B2の3つのグループに区分けされます。(左)

・それぞれのグループ単位の平均値を取得します。(右)


P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
RANKAVG(SALE)
A1 4500
C1 1000
B212000