ウィンドウの最後のローの値を返します。
LAST_VALUE( [ ALL ] 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 定義を参照してください。WINDOW 句を参照してください。
SELECT 文での Window 関数の使用方法や実例については、Window 関数を参照してください。
OVER 句でのウィンドウ指定の詳細については、ウィンドウ定義:OVER 句と WINDOW 句を使用したインライン定義を参照してください。
SQL/2008 ベンダー拡張。
SQL Anywhere では、SQL/2008 言語機能 F441、「Extended set function support」がサポートされています。これにより、カラム参照ではない任意の式を Window 関数のオペランドで使用できます。
SQL Anywhere では、オプションの SQL/2008 機能 F442、「Mixed column references in set function」がサポートされていません。SQL Anywhere では、LAST_VALUE 関数を含むクエリブロックからのカラム参照と外部参照の両方を、集合関数の引数に含めることはできません。例については、AVG 関数 [集合]を参照してください。
次の例は、各従業員の給料と、同じ部署内で最高額の給料を受け取っている従業員の名前を返します。
SELECT GivenName + ' ' + Surname AS employee_name, Salary, DepartmentID, LAST_VALUE( employee_name ) OVER Salary_Window AS highest_paid FROM GROUPO.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 です。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |