AVG 関数
AVG 関数は、入力式の値の平均 (算術平均) を返します。AVG 関数は数値に対してはたらき、NULL 値は無視します。
構文
AVG ( [ DISTINCT | ALL ] expression )
引数
- expression
-
関数の対象となる列または式。式は、以下に示すデータ型の 1 つを取ります。
SMALLINT
INTEGER
BIGINT
NUMERIC
DECIMAL
REAL
DOUBLE PRECISION
SUPER
- DISTINCT | ALL
-
引数 DISTINCT を指定すると、この関数は平均を計算する前に重複した値をすべて指定された式から削除します。引数 ALL を指定すると、この関数は平均を計算する式の重複した値をすべて保持します。ALL がデフォルトです。
データ型
AVG 関数でサポートされる引数の型は、SMALLINT、INTEGER、BIGINT、NUMERIC、DECIMAL、REAL、DOUBLE PRECISION および SUPER です。
AVG 関数でサポートされる戻り値の型は次のとおりです。
-
整数型の引数の場合は BIGINT
-
浮動小数点の引数の場合は DOUBLE PRECISION
他の引数型については、expression と同じデータ型を返します。
NUMERIC または DECIMAL 引数を使用した AVG 関数の結果のデフォルト精度は 38 です。結果のスケールは、引数のスケールと同じです。例えば、DEC(5,2) 列の AVG は DEC(38,2) のデータ型を返します。
例
SALES テーブルから取引ごとの平均販売量を検索します。
select avg(qtysold)from sales; avg ----- 2 (1 row)
すべてのリストに一覧表示された合計額の平均を検索します。
select avg(numtickets*priceperticket) as avg_total_price from listing; avg_total_price ----------------- 3034.41 (1 row)
支払い額の平均を月ごとに降順で検索します。
select avg(pricepaid) as avg_price, month from sales, date where sales.dateid = date.dateid group by month order by avg_price desc; avg_price | month -----------+------- 659.34 | MAR 655.06 | APR 645.82 | JAN 643.10 | MAY 642.72 | JUN 642.37 | SEP 640.72 | OCT 640.57 | DEC 635.34 | JUL 635.24 | FEB 634.24 | NOV 632.78 | AUG (12 rows)