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 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen und Datenänderung » OLAP-Unterstützung » Fensterfunktionen in SQL Anywhere » Basis-Aggregatfunktionen

 

Beispiel für SUM-Funktion

Im folgenden Beispiel wird die SUM-Funktion als eine Fensterfunktion verwendet. Die Abfrage gibt eine Ergebnismenge zurück, die die Daten nach "DepartmentID" partitioniert und dann eine kumulative Summe der Gehälter beginnend mit dem am längsten im Unternehmen beschäftigten Mitarbeiter anzeigt. Die Ergebnismenge enthält nur die Mitarbeiter, die in Kalifornien, Utah, New York oder Arizona leben. Die Spalte "Sum_Salary" liefert die kumulative Gesamtsumme der Mitarbeitergehälter.

SELECT DepartmentID, Surname, StartDate, Salary,
SUM( Salary ) OVER ( PARTITION BY DepartmentID
    ORDER BY StartDate
    RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) 
AS "Sum_Salary"
FROM Employees
WHERE State IN ( 'CA', 'UT', 'NY', 'AZ' ) 
   AND DepartmentID IN ( '100', '200' )
ORDER BY DepartmentID, StartDate;

Die nachstehende Tabelle stellt die Ergebnismenge dieser Abfrage dar. Die Ergebnismenge wird nach "DepartmentID" partitioniert.

DepartmentID Surname StartDate Salary Sum_Salary
1 100 Whitney 1984-08-28 45700.00 45700.00
2 100 Cobb 1985-01-01 62000.00 107700.00
3 100 Shishov 1986-06-07 72995.00 180695.00
4 100 Driscoll 1986-07-01 48023.69 228718.69
5 100 Guevara 1986-10-14 42998.00 271716.69
6 100 Wang 1988-09-29 68400.00 340116.69
7 100 Soo 1990-07-31 39075.00 379191.69
8 100 Diaz 1990-08-19 54900.00 434091.69
9 200 Overbey 1987-02-19 39300.00 39300.00
10 200 Martel 1989-10-16 55700.00 95000.00
11 200 Savarino 1989-11-07 72300.00 167300.00
12 200 Clark 1990-07-21 45000.00 212300.00
13 200 Goggin 1990-08-05 37900.00 250200.00

Für die DepartmentID 100 ist die kumulative Gesamtsumme der Gehälter von Mitarbeitern in Kalifornien, Utah, New York und Arizona insgesamt $434,091.69 und die kumulative Gesamtsumme für die Mitarbeiter in DepartmentID 200 beträgt $250,200.00.

 Deltawerte zwischen angrenzenden Zeilen berechnen
 Komplexe Analysen
 Umschreiben mit einer Rangfunktion
 Siehe auch