AVGは複数行にわたる式の平均を評価する集約関数です。(集約 (集合関数)を参照してください。) AVGは数値型に評価される式に対してのみ作用させることができます。
AVG ( [ DISTINCT | ALL ] 式 )
DISTICTを指定すると、重複が取り除かれます。 ALLを指定すると、重複を残します。ALLもDISTINCTも指定されない場合の既定はALLです。 例えば、列の値が1.0、1.0、1.0、1.0、2.0だったとします。この場合、AVG(col)はAVG(DISTINCT col)より小さな値を返します。
SELECT AVG (DISTINCT flying_time), SUM (DISTINCT miles) FROM Flights
式には複数列への参照や式があってかまいませんが、他の集約や副問合せがあってはなりません。 また評価結果はSQL-92の数値型でなければなりません。したがってSQL-92の型に評価される関数なら呼ぶことができます。もし評価結果がNULLであった場合、集約にてその値は省かれます。
SELECT AVG(c1) FROM (VALUES (1), (1), (1), (1), (2)) AS myTable (c1)
SELECT AVG(CAST (c1 AS DOUBLE PRECISION)) FROM (VALUES (1), (1), (1), (1), (2)) AS myTable (c1)