Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » OLAP のサポート » SQL Anywhere の Window 関数 » 基本集合関数

 

AVG 関数の例

次の例では、2000 年における月別の全製品売上の移動平均を計算するための Window 関数として AVG が使用されています。WINDOW 指定で RANGE 句が使用されているので、ROWS 句の場合のように隣接ローの数で計算されるのではなく、月の値を基にウィンドウ境界が計算されます。ある月に一部またはすべての製品の販売がなかった場合などは、ROWS を使用すると異なる結果が生成されます。



SELECT *
  FROM ( SELECT s.ProductID, 
         Month( o.OrderDate ) AS julian_month,
         SUM( s.Quantity ) AS sales,
         AVG( SUM( s.Quantity ) )
         OVER ( PARTITION BY s.ProductID
           ORDER BY Month( o.OrderDate ) ASC
           RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING ) 
         AS average_sales
         FROM SalesOrderItems s KEY JOIN SalesOrders o
         WHERE Year( o.OrderDate ) = 2000
         GROUP BY s.ProductID, Month( o.OrderDate ) ) 
  AS DT
  ORDER BY 1,2;
 参照