从窗口最后一行返回值。
LAST_VALUE( [ ALL ] expression[ { RESPECT | IGNORE } NULLS ] ) OVER ( window-spec )
window-spec:请参见下面的注释部分
expression 要计算的表达式。例如,列名。
参数的数据类型。
LAST_VALUE 函数使您不用自连接就能(依照某种排序)选择表中的最后一个值。如果您希望使用最后一个值作为计算的基准,此函数很有价值。
LAST_VALUE 函数在完成 ORDER BY 后从分区提取最后一个记录。然后针对最后一个记录计算 expression 并返回结果。
如果指定 IGNORE NULL,则返回 expression 的最后一个非 NULL 值。如果指定 RESPECT NULLS(缺省值),则会返回最后一个值,无论其是否为 NULL。
LAST_VALUE 函数与其它大多数集合函数的不同之处在于:该函数只能与窗口说明一起使用。
可以在函数语法中指定 window-spec 的元素(内置),也可以将这些元素与 SELECT 语句中的 WINDOW 子句一并加以指定。请参见 WINDOW 子句的 window-spec 定义。请参见WINDOW 子句。
有关在 SELECT 语句中使用窗口函数的详细信息(包括工作示例),请参见窗口函数。
有关在 OVER 子句中指定窗口说明的详细信息,请参见窗口定义:内置使用 OVER 子句和 WINDOW 子句。
SQL/2008 服务商扩充。
SQL Anywhere 支持 SQL/2008 语言功能 F441 "扩展集函数支持",它允许窗口函数的操作数是列引用以外的任意表达式。
SQL Anywhere 不支持可选的 SQL/2008 功能 F442 "集函数中的混合列引用"。SQL Anywhere 不允许集合函数参数既含有来自包含 LAST_VALUE 函数的查询块的列引用,又含有外部引用。有关示例内容,请参见AVG 函数 [Aggregate]。
以下示例返回每个雇员的工资以及在同一部门中工资最高的雇员的姓名:
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 |
... | ... | ... | ... |
Jose Martinez 在部门 500 中工资最高,Scott Evans 在部门 400 中工资最高。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |