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_ID | RANK | SALE | RATE |
---|---|---|---|
A00101 | A1 | 5000 | 0.50 |
A00102 | A1 | 4000 | 0.40 |
A00103 | C1 | 1000 | 0.10 |
Z00101 | B2 | 12000 | 1.20 |
Z00102 | B2 | 12000 | 1.20 |
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_IDがZ00102のRATE1.20は平均値を取得するとき計算の対象外となります。(左)
P_ID | RANK | SALE | RATE |
---|---|---|---|
A00101 | A1 | 5000 | 0.50 |
A00102 | A1 | 4000 | 0.40 |
A00103 | C1 | 1000 | 0.10 |
Z00101 | B2 | 12000 | 1.20 |
Z00102 | B2 | 12000 | 1.20 |
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表のRANKはA1, C1, B2の3つのグループに区分けされます。(左)
・それぞれのグループ単位の平均値を取得します。(右)
P_ID | RANK | SALE | RATE |
---|---|---|---|
A00101 | A1 | 5000 | 0.50 |
A00102 | A1 | 4000 | 0.40 |
A00103 | C1 | 1000 | 0.10 |
Z00101 | B2 | 12000 | 1.20 |
Z00102 | B2 | 12000 | 1.20 |
RANK | AVG(SALE) |
---|---|
A1 | 4500 |
C1 | 1000 |
B2 | 12000 |