指定した列の値の平均値を返す集約関数です。
Synopsis
AVG([ALL | DISTINCT] expression)
AVG で DISTINCT キーワードを使用すると、個別 (一意) の値を持つフィールドのみについて集約演算が実行されます。ALL キーワードはオプションです。既定では、すべての値の平均値が計算されます。
AVG は倍精度浮動小数点数を返します。既定では、集約関数は Display 値ではなく、Logical (内部) データ値を使用します。
通常、
AVG は数値を含むフィールドまたは式に適用されます。型チェックは実行されないため、(ほとんど意味はありませんが) 非数値フィールドに対して実行できます。
AVG では、空文字列 ('') のように数値でない値はゼロ (0) として扱われます。
データ・フィールドの NULL 値は、
AVG 集約関数の値を取得する場合は無視されます。クエリから行が返されない場合や、すべての行のデータ・フィールド値が NULL の場合、
AVG は NULL を返します。
以下のクエリは、Sample.Employee データベースに記録されている全従業員の平均給与額をリストにします。クエリから返されたすべての行には同じ平均値が入っているので、このクエリは、平均給与額から成る 1 行のみを返します。結果の見やすさを考慮し、|| 演算子を使用して数値にドル記号を付加し、AS 節を使用して列にラベルを表示しています。
SELECT '$' || AVG(Salary) AS AverageSalary
FROM Sample.Employee
以下のクエリは、平均給与額よりも給与額が多い従業員の名前、給与額、全従業員の平均給与額をリストにします。行は給与額の昇順でリストされます。平均給与額のフィールド値は、クエリで返されるすべての行で同じ値になります。
SELECT Name,Salary,AVG(Salary) AS AverageSalary
FROM Sample.Employee
HAVING Salary>AVG(Salary)
ORDER BY Salary