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; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |