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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 関数 » SQL 関数 (E ~ O)

 

LAST_VALUE 関数 [集合]

ウィンドウの最後のローの値を返します。

構文
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 です。