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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » SQL-Funktionen (E-O)

 

LAST_VALUE-Funktion [Aggregat]

Liefert Werte aus der letzten Zeile eines Fensters.

Syntax
LAST_VALUE( Ausdruck[ { RESPECT | IGNORE } NULLS ] )
OVER ( Fensterspezifikation )
Fensterspezifikation: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
Parameter
  • Ausdruck   Der auszuwertende Ausdruck. Z.B. ein Spaltenname.

Rückgabe

Datentyp des Arguments.

Bemerkungen

Mit der LAST_VALUE-Funktion können Sie den letzten Wert (entsprechend der Sortierung) in einer Tabelle auswählen, ohne einen Selbst-Join verwenden zu müssen. Dies ist nützlich, wenn Sie den letzten Wert als Basiswert in Berechnungen verwenden wollen.

Die LAST_VALUE-Funktion verwendet den letzten Datensatz aus der Partition, nachdem eine ORDER BY-Anweisung ausgeführt wurde. Anschließend wird der Ausdruck anhand des letzten Datensatzes berechnet und Ergebnisse werden zurückgegeben.

Wenn IGNORE NULLS angegeben ist, wird der letzte Nicht-NULL-Wert von Ausdruck zurückgegeben. Wenn RESPECT NULLS angegeben ist (Standardwert), wird der letzte Wert zurückgegeben, unabhängig davon, ob er NULL ist.

Die LAST_VALUE-Funktion unterscheidet sich von den meisten anderen Aggregatfunktionen, weil sie nur mit einer Fensterspezifikation verwendet werden kann.

Elemente von Fensterspezifikation können in der Funktionssyntax (Inline) oder zusammen mit einer WINDOW-Klausel in der SELECT-Anweisung angegeben werden. Weitere Hinweise finden Sie unter der Fensterspezifikation-Definition unter WINDOW-Klausel.

Weitere Hinweise zur Verwendung von Fensterfunktionen in SELECT-Anweisungen mit Arbeitsbeispielen finden Sie unter Fensterfunktionen.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Das folgende Beispiel gibt das Gehalt jedes Mitarbeiters sowie den Namen des Mitarbeiters mit dem höchsten Gehalt in der Abteilung zurück:

SELECT GivenName + ' ' + Surname AS employee_name, 
       Salary, DepartmentID,
       LAST_VALUE( employee_name ) OVER Salary_Window AS highest_paid
FROM Employees
WINDOW Salary_Window AS ( PARTITION BY DepartmentID ORDER BY Salary 
                          RANGE BETWEEN UNBOUNDED PRECEDING 
                          AND UNBOUNDED FOLLOWING );
employee_name Salary DepartmentID highest_paid
Michael Lynch 24.903,000 500 Jose Martinez
Joseph Barker 27.290,000 500 Jose Martinez
Sheila Romero 27.500,000 500 Jose Martinez
Felicia Kuo 28.200,000 500 Jose Martinez
Jeannette Bertrand 29.800,000 500 Jose Martinez
Jane Braun 34.300,000 500 Jose Martinez
Anthony Rebeiro 34.576,000 500 Jose Martinez
Charles Crowley 41.700,000 500 Jose Martinez
Jose Martinez 55.500,800 500 Jose Martinez
Doug Charlton 28.300,000 400 Scott Evans
Elizabeth Lambert 29.384,000 400 Scott Evans
Joyce Butterfield 34.011,000 400 Scott Evans
Robert Nielsen 34.889,000 400 Scott Evans
Alex Ahmed 34.992,000 400 Scott Evans
Ruth Wetherby 35.745,000 400 Scott Evans
... ... ... ...

Jose Martinez hat in der Abteilung 500 das höchste Gehalt und Scott Evans in der Abteilung 400.