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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » OLAP-Unterstützung » Fensterfunktionen in SQL Anywhere » Basis-Aggregatfunktionen

 

Beispiel für AVG-Funktion

In diesem Beispiel wird AVG als Fensterfunktion verwendet, um den veränderlichen Durchschnitt aller Produktverkäufe pro Monat im Jahr 2000 zu berechnen. Beachten Sie, dass die WINDOW-Spezifikation eine RANGE-Klausel verwendet, was bewirkt, dass die Fenstergrenzen basierend auf dem Monatswert berechnet werden, und nicht anhand der Anzahl von angrenzenden Zeilen wie bei der ROWS-Klausel. Die Verwendung von ROWS würde zu anderen Ergebnissen führen, wenn es z.B. in einem bestimmten Monat keine Verkäufe eines oder aller Produkte gibt.



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;
 Siehe auch