对于任意的行 X(由函数的参数和 ORDER BY 说明来定义),PERCENT_RANK 函数计算其排位的方法是:用行 X 减 1 除以组中的行数。
PERCENT_RANK( ) OVER ( window-spec )
window-spec:请参见下面的“注释”部分
PERCENT_RANK 函数返回介于 0 和 1 之间的 DOUBLE 值。
可以在函数语法中指定 window-spec 的元素(内置),也可以将这些元素与 SELECT 语句中的 WINDOW 子句一并加以指定。作为窗口函数使用时,必须指定 ORDER BY 子句,还可以指定 PARTITION BY 子句,但不能指定 ROWS 或 RANGE 子句。请参见WINDOW 子句中提供的 window-spec 定义。
有关在 SELECT 语句中使用窗口函数的详细信息(包括工作示例),请参见窗口函数。
SQL/2003 SQL/OLAP 特性 T612。
以下示例返回按性别显示 New York 雇员薪水排位的结果集。这些结果按降序列出排位并按性别分区。
SELECT DepartmentID, Surname, Salary, Sex, PERCENT_RANK() OVER (PARTITION BY Sex ORDER BY Salary DESC) "Rank" FROM Employees WHERE State IN ('NY'); |
DepartmentID | Surname | Salary | Sex | Rank |
---|---|---|---|---|
200 | Martel | 55700.000 | M | 0 |
100 | Guevara | 42998.000 | M | 0.333333333 |
100 | Soo | 39075.000 | M | 0.666666667 |
400 | Ahmed | 34992.000 | M | 1 |
300 | Davidson | 57090.000 | F | 0 |
400 | Blaikie | 54900.000 | F | 0.333333333 |
100 | Whitney | 45700.000 | F | 0.666666667 |
400 | Wetherby | 35745.000 | F | 1 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |