Liefert Werte aus der ersten Zeile eines Fensters.
FIRST_VALUE( Ausdruck [ { RESPECT | IGNORE } NULLS ] ) OVER ( Fensterspezifikation )
Fensterspezifikation: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
Ausdruck Der auszuwertende Ausdruck. Z.B. ein Spaltenname.
Datentyp des Arguments.
Mit der FIRST_VALUE-Funktion können Sie den ersten Wert (entsprechend der Sortierung) in einer Tabelle auswählen, ohne einen Selbst-Join verwenden zu müssen. Dies ist nützlich, wenn Sie den ersten Wert als Basiswert in Berechnungen verwenden wollen.
Die FIRST_VALUE-Funktion nimmt den ersten Datensatz im Fenster. Anschließend wird der Ausdruck anhand des ersten Datensatzes berechnet und Ergebnisse werden zurückgegeben.
Wenn IGNORE NULLS angegeben ist, wird der erste Nicht-NULL-Wert von Ausdruck zurückgegeben. Wenn RESPECT NULLS angegeben ist (Standardwert), wird der erste Wert zurückgegeben, unabhängig davon, ob er NULL ist.
Die FIRST_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.
SQL/2003 Erweiterung des Herstellers
Das folgende Beispiel gibt die Beziehung (als Prozentsatz) zwischen dem Gehalt aller Mitarbeiter und dem Gehalt des zuletzt eingestellten Mitarbeiters in der Abteilung zurück:
SELECT DepartmentID, EmployeeID, 100 * Salary / ( FIRST_VALUE( Salary ) OVER ( PARTITION BY DepartmentID ORDER BY StartDate DESC ) ) AS percentage FROM Employees; |
DepartmentID | EmployeeID | percentage |
---|---|---|
500 | 1658 | 100 |
500 | 1615 | 110.4284624 |
500 | 1570 | 138.8427097 |
500 | 1013 | 109.5851905 |
500 | 921 | 167.4497049 |
500 | 868 | 113.2393688 |
500 | 750 | 137.7344095 |
500 | 703 | 222.8679276 |
500 | 191 | 119.6642975 |
400 | 1751 | 100 |
400 | 1740 | 99.705647 |
400 | 1684 | 130.969936 |
400 | 1643 | 83.9734797 |
400 | 1607 | 175.1828989 |
400 | 1576 | 197.0164609 |
... | ... | ... |
Mitarbeiter 1658 ist die erste Zeile für Department 500, womit angezeigt wird, dass es sich dabei um den jüngsten Neuzugang in der Abteilung handelt. Der Prozentsatz ist 100%. Die Prozentsätze für die restlichen Department-500-Mitarbeiter werden relativ zu Mitarbeiter 1658 berechnet. Mitarbeiter 1570 verdient beispielsweise 139% des Gehalts von 1658.
Wenn andere Mitarbeiter in derselben Abteilung gleich viel verdienen wie der zuletzt eingestellte Mitarbeiter, haben sie ebenfalls den Prozentsatz 100%.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |