ウィンドウの最後のローの値を返します。
LAST_VALUE( expression[ { RESPECT | IGNORE } NULLS ] ) OVER ( window-spec )
window-spec : 以下の備考を参照します。
expression 評価する式。たとえば、カラム名です。
引数のデータ型。
LAST_VALUE 関数を使用すると、セルフジョインを使用せずに、(何らかの順序による) 最後の値を選択できます。最後の値を計算の基準として使用する場合、この関数が役立ちます。
LAST_VALUE 関数は、ORDER BY を実行した後の分割から最後のレコードを取得します。次に、最後のレコードに対して expression が比較され、結果が返されます。
IGNORE NULLS を指定すると、expression にある最後の NULL 以外の値が返されます。RESPECT NULLS (デフォルト) を指定すると、最後の値が、それが NULL であってもなくても返されます。
LAST_VALUE 関数は、その他の大部分の集合関数とは異なり、ウィンドウ指定を行った場合にのみ使用できます。
window-spec の要素は、関数構文の中 (インライン) に指定するか、または SELECT 文の WINDOW 句と組み合わせて指定できます。WINDOW 句の window-spec 定義を参照してください。
SELECT 文での Window 関数の使用方法や実例については、Window 関数を参照してください。
SQL/2003 ベンダ拡張。
次の例は、各従業員の給料と、同じ部署内で最高額の給料を受け取っている従業員の名前を返します。
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 | 24903 | 500 | Jose Martinez |
Joseph Barker | 27290 | 500 | Jose Martinez |
Sheila Romero | 27500 | 500 | Jose Martinez |
Felicia Kuo | 28200 | 500 | Jose Martinez |
Jeannette Bertrand | 29800 | 500 | Jose Martinez |
Jane Braun | 34300 | 500 | Jose Martinez |
Anthony Rebeiro | 34576 | 500 | Jose Martinez |
Charles Crowley | 41700 | 500 | Jose Martinez |
Jose Martinez | 55500.8 | 500 | Jose Martinez |
Doug Charlton | 28300 | 400 | Scott Evans |
Elizabeth Lambert | 29384 | 400 | Scott Evans |
Joyce Butterfield | 34011 | 400 | Scott Evans |
Robert Nielsen | 34889 | 400 | Scott Evans |
Alex Ahmed | 34992 | 400 | Scott Evans |
Ruth Wetherby | 35745 | 400 | Scott Evans |
... | ... | ... | ... |
部署 500 で最高額の給料を受け取っている従業員は Jose Martinez で、部署 400 で最高額の給料を受け取っている従業員は Scott Evans です。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |