WRank - 指令碼函數
WRank() 評估載入指令碼中表格的列,並且對每一列,顯示在載入指令碼中評估之欄位的值的相對位置。評估表格時,該函數會比較該結果與包含目前分割的其他列所產生的結果,並傳回區段內目前列的排名。
WRank 只能用於 Window 函數。Window 函數必須包括排序類型和排序運算式。排名套用於排序運算式。
語法:
WRank ([mode[, fmt]])
傳回的資料類型: 雙值
引數:
引數 | 描述 |
---|---|
mode | 也可以指定函數結果的數字表示法。 |
fmt | 也可以指定函數結果的文字表示法。 |
TOTAL |
如果表格為單一維度或指令碼前面加上 TOTAL 限定詞,則沿著整個資料行計算該函數。 如果表格或同等表格有多個垂直維度,則目前分割僅會包含在所有維度資料行中與目前列有相同值的列 (顯示欄位間排序順序之最後一個維度的資料行除外)。 |
傳回的排名都是雙值,在這種情況下,各個列都會有唯一的排名,這是介於 1 與目前分割中的列數兩者之間的整數。
多個列有相同的排名時,可以使用 mode 和 fmt 參數控制文字和數字表示法。
mode
第一個引數 mode 可使用下列值:
值 | 描述 |
---|---|
0 (預設) |
如果共用群組中所有的排名都落在整個排名中間值下半部,所有列將得到共用群組的最低排名。 如果共用群組中所有的排名都落在整個排名中間值上半部,所有列將得到共用群組的最高排名。 如果共用群組中的排名落在整個排名的中間值,所有列的值將相當於整個分割中最高與最低排名兩者的平均。 |
1 | 所有列的最低排名。 |
2 | 所有列的平均排名。 |
3 | 所有列的最高排名。 |
4 | 第一列的最低排名,然後每列遞增 1。 |
fmt
第二個引數 fmt 可控制下列值:
值 | 描述 |
---|---|
0 (預設) | 低值 - 所有列的高值 (例如 3 - 4)。 |
1 | 所有列的低值。 |
2 | 第一列的低值,在後續列上則空白。 |
mode 4 與 fmt 2 的列順序取決於表格欄位的載入順序。
範例 - 新增排名欄位
範例 - 對單一數字結果使用 fmt 新增排名欄位
範例 - 透過多個分割區新增排名欄位
限制
WRank 具有下列限制:
-
若 fmt 值是 0,且您想要對 WRank 使用雙重結果的文字部分,則您必須使用 Text() 搭配 Window(WRank)。例如:Text(Window(WRank(0), Unit, 'DESC', Age)) as UnitWRankedByAgeText。