Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
対象となるローセットの、数値式の平均値またはユニークな値からなるセットの平均値を計算します。
AVG( [ ALL | DISTINCT ] numeric-expression )
AVG( [ ALL ] numeric-expression ) OVER ( window-spec )
window-spec :以下の「備考」の構文 2 の説明を参照してください。
[ ALL ] numeric-expression 各グループのローで平均値が計算される式。
DISTINCT 句 グループごとにユニークな数値の平均を計算します。
グループにローが含まれていない場合は、NULL 値を返します。
引数が DOUBLE の場合は DOUBLE を、それ以外の場合は NUMERIC を返します。
この平均値には、numeric-expression が NULL 値のローは含まれません。
構文 2 は、SELECT 文で Window 関数として使用する場合の用法を示します。この場合、window-spec の要素は、関数構文の中 (インライン) に指定するか、または SELECT 文の WINDOW 句と組み合わせて指定できます。WINDOW 句の window-spec 定義を参照してください。
SELECT 文での Window 関数の使用方法や実例については、Window 関数を参照してください。
OVER 句でのウィンドウ指定の詳細については、ウィンドウ定義:OVER 句と WINDOW 句を使用したインライン定義を参照してください。
この関数ではオーバーフローエラーが発生することがあり、これにより、エラーが返される場合があります。オーバーフローエラーを回避するために、numeric-expression で CAST 関数を使用できます。
SQL/2008 AVG は、SQL/2008 標準のコア機能です。
SQL/2008 構文 1 は SQL/2008 標準のコア機能であり、構文 2 はオプションの SQL/2008 言語機能 T611、「Elementary OLAP operations」の一部です。カラム参照ではない式に対して DISTINCT を指定する機能は、オプションの SQL 言語機能 F561、「Full value expressions」の一部です。SQL Anywhere では、SQL/2008 言語機能 F441、「Extended set function support」もサポートされています。これにより、他のクエリブロックの式に対する外部参照など、カラム参照ではない任意の式を集合関数のオペランドで使用できます。
SQL Anywhere では、オプションの SQL/2008 機能 F442、「Mixed column references in set function」がサポートされていません。SQL Anywhere では、AVG 関数を含むクエリブロックからのカラム参照と外部参照の両方を、集合関数の引数に含めることはできません。
次の文は、SQL Anywhere 16 Demo に接続されると値 49988.623200 を返します。
49988.623200
SELECT AVG( Salary ) FROM Employees;
次の文は、SQL Anywhere 16 Demo に接続されると Products テーブルの製品価格の平均を返します。
SELECT AVG( DISTINCT UnitPrice ) FROM Products;
次の文は、サブクエリからの限定式と外部 SELECT ブロックからの外部参照 (p.Quantity) の両方が AVG の引数に含まれているため、SQLSTATE 42W68 エラーが返されます。
SELECT * from GROUPO.Products as p WHERE p.Quantity > ( SELECT AVG( 0.5 * p.Quantity + 0.5 * s.Quantity ) from GROUPO.SalesOrderItems as s WHERE s.ProductID = p.ProductID )