WRank - 指令碼函數
WRank() 評估載入指令碼中表格的列,並且對每一列,顯示在載入指令碼中評估之欄位的值的相對位置。評估表格時,該函數會比較該結果與包含目前分割的其他列所產生的結果,並傳回區段內目前列的排名。
表格中的分割

WRank 只能用於 Window 函數。Window 函數必須包括排序類型和排序運算式。排名套用於排序運算式。
語法:
WRank ([mode[, fmt]])
傳回的資料類型: 雙值
引數:
引數 | 描述 |
---|---|
mode | 也可以指定函數結果的數字表示法。 |
fmt | 也可以指定函數結果的文字表示法。 |
傳回的排名都是雙值,在這種情況下,各個列都會有唯一的排名,這是介於 1 與目前分割中的列數兩者之間的整數。
多個列有相同的排名時,可以使用 mode 和 fmt 參數控制文字和數字表示法。
mode
第一個引數 mode 可使用下列值:
值 | 描述 |
---|---|
0 (預設) |
如果共用群組中所有的排名都落在整個排名中間值下半部,所有列將得到共用群組的最低排名。 如果共用群組中所有的排名都落在整個排名中間值上半部,所有列將得到共用群組的最高排名。 如果共用群組中的排名落在整個排名的中間值,所有列的值將相當於整個分割中最高與最低排名兩者的平均。 |
1 | 所有列的最低排名。 |
2 | 所有列的平均排名。 |
3 | 所有列的最高排名。 |
4 | 第一列的最低排名,然後每列遞增 1。 |
fmt
第二個引數 fmt 可控制下列值:
值 | 描述 |
---|---|
0 (預設) | 低值 - 所有列的高值 (例如 3 - 4)。 |
1 | 所有列的低值。 |
2 | 第一列的低值,在後續列上則空白。 |
mode 4 與 fmt 2 的列順序取決於表格欄位的載入順序。
範例 - 新增排名欄位
載入指令碼
在資料載入編輯器中建立新的索引標籤,然後載入下列資料作為內嵌載入。在 Qlik Sense 中建立以下表格以查看結果。
Transactions:
Load
*,
Window(WRank(0),customer_id, 'Desc', transaction_amount) as TransactionRanking;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, M, Orange
3752, 20180916, 5.75, 1, 5646471, S, Blue
3753, 20180922, 125.00, 7, 3036491, L, Black
3754, 20180922, 484.21, 13, 049681, XS, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
3758, 20180924, 153.42, 14, 2038593, L, Red
3759, 20180925, 7.42, 5, 203521, M, Orange
3760, 20180925, 80.12, 18, 5646471, M, Blue
3761, 20180926, 3.42, 7, 3036491, XS, Black
3763, 20180926, 63.55, 12, 049681, S, Red
3763, 20180927, 177.56, 10, 2038593, L, Blue
3764, 20180927, 325.95, 8, 203521, XL, Black
];
結果
transaction_id | transaction_date | transaction_amount | transaction_quantity | customer_id | 大小 | color_code | TransactionRanking |
---|---|---|---|---|---|---|---|
3750 | 20180830 | 23.56 | 2 | 2038593 | L | 紅色 | 4-4 |
3751 | 20180907 | 556.31 | 6 | 203521 | M | 橘色 | 1-1 |
3752 | 20180916 | 5.75 | 1 | 5646471 | S | 藍色 | 2-2 |
3754 | 20180922 | 484.21 | 13 | 049681 | XS | 紅色 | 1-1 |
3756 | 20180922 | 59.18 | 2 | 2038593 | M | 藍色 | 3-3 |
3753 | 20180922 | 125.00 | 7 | 3036491 | L | 黑色 | 1-1 |
3757 | 20180923 | 177.42 | 21 | 203521 | XL | 黑色 | 3-3 |
3758 | 20180924 | 153.42 | 14 | 2038593 | L | 紅色 | 2-2 |
3759 | 20180925 | 7.42 | 5 | 203521 | M | 橘色 | 4-4 |
3760 | 20180925 | 80.12 | 18 | 5646471 | M | 藍色 | 1-1 |
3763 | 20180926 | 63.55 | 12 | 049681 | S | 紅色 | 2-2 |
3761 | 20180926 | 3.42 | 7 | 3036491 | XS | 黑色 | 2-2 |
3764 | 20180927 | 325.95 | 8 | 203521 | XL | 黑色 | 2-2 |
3763 | 20180927 | 177.56 | 10 | 2038593 | L | 藍色 | 1-1 |
範例 - 對單一數字結果使用 fmt 新增排名欄位
載入指令碼
在資料載入編輯器中建立新的索引標籤,然後載入下列資料作為內嵌載入。在 Qlik Sense 中建立以下表格以查看結果。
Transactions:
Load
*,Window(WRank(0,1),customer_id, 'Desc', transaction_amount) as TransactionRanking;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, M, Orange
3752, 20180916, 5.75, 1, 5646471, S, Blue
3753, 20180922, 125.00, 7, 3036491, L, Black
3754, 20180922, 484.21, 13, 049681, XS, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
3758, 20180924, 153.42, 14, 2038593, L, Red
3759, 20180925, 7.42, 5, 203521, M, Orange
3760, 20180925, 80.12, 18, 5646471, M, Blue
3761, 20180926, 3.42, 7, 3036491, XS, Black
3763, 20180926, 63.55, 12, 049681, S, Red
3763, 20180927, 177.56, 10, 2038593, L, Blue
3764, 20180927, 325.95, 8, 203521, XL, Black
];
結果
transaction_id | transaction_date | transaction_amount | transaction_quantity | customer_id | 大小 | color_code | TransactionRanking |
---|---|---|---|---|---|---|---|
3750 | 20180830 | 23.56 | 2 | 2038593 | L | 紅色 | 4 |
3751 | 20180907 | 556.31 | 6 | 203521 | M | 橘色 | 1 |
3752 | 20180916 | 5.75 | 1 | 5646471 | S | 藍色 | 2 |
3754 | 20180922 | 484.21 | 13 | 049681 | XS | 紅色 | 1 |
3756 | 20180922 | 59.18 | 2 | 2038593 | M | 藍色 | 3 |
3753 | 20180922 | 125.00 | 7 | 3036491 | L | 黑色 | 1 |
3757 | 20180923 | 177.42 | 21 | 203521 | XL | 黑色 | 3 |
3758 | 20180924 | 153.42 | 14 | 2038593 | L | 紅色 | 2 |
3759 | 20180925 | 7.42 | 5 | 203521 | M | 橘色 | 4 |
3760 | 20180925 | 80.12 | 18 | 5646471 | M | 藍色 | 1 |
3763 | 20180926 | 63.55 | 12 | 049681 | S | 紅色 | 2 |
3761 | 20180926 | 3.42 | 7 | 3036491 | XS | 黑色 | 2 |
3764 | 20180927 | 325.95 | 8 | 203521 | XL | 黑色 | 2 |
3763 | 20180927 | 177.56 | 10 | 2038593 | L | 藍色 | 1 |
範例 - 透過多個分割區新增排名欄位
載入指令碼
在資料載入編輯器中建立新的索引標籤,然後載入下列資料作為內嵌載入。在 Qlik Sense 中建立以下表格以查看結果。
Transactions:
Load
*,Window(WRank(0,1),customer_id, size, color_code, 'Desc', transaction_amount) as TransactionRanking;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, M, Orange
3752, 20180916, 5.75, 1, 5646471, S, Blue
3753, 20180922, 125.00, 7, 3036491, L, Black
3754, 20180922, 484.21, 13, 049681, XS, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
3758, 20180924, 153.42, 14, 2038593, L, Red
3759, 20180925, 7.42, 5, 203521, M, Orange
3760, 20180925, 80.12, 18, 5646471, M, Blue
3761, 20180926, 3.42, 7, 3036491, XS, Black
3763, 20180926, 63.55, 12, 049681, S, Red
3763, 20180927, 177.56, 10, 2038593, L, Blue
3764, 20180927, 325.95, 8, 203521, XL, Black
];
結果
transaction_id | transaction_date | transaction_amount | transaction_quantity | customer_id | 大小 | color_code | TransactionRanking |
---|---|---|---|---|---|---|---|
3750 | 20180830 | 23.56 | 2 | 2038593 | L | 紅色 | 2 |
3751 | 20180907 | 556.31 | 6 | 203521 | M | 橘色 | 1 |
3752 | 20180916 | 5.75 | 1 | 5646471 | S | 藍色 | 1 |
3754 | 20180922 | 484.21 | 13 | 049681 | XS | 紅色 | 1 |
3756 | 20180922 | 59.18 | 2 | 2038593 | M | 藍色 | 1 |
3753 | 20180922 | 125.00 | 7 | 3036491 | L | 黑色 | 1 |
3757 | 20180923 | 177.42 | 21 | 203521 | XL | 黑色 | 2 |
3758 | 20180924 | 153.42 | 14 | 2038593 | L | 紅色 | 1 |
3759 | 20180925 | 7.42 | 5 | 203521 | M | 橘色 | 2 |
3760 | 20180925 | 80.12 | 18 | 5646471 | M | 藍色 | 1 |
3763 | 20180926 | 63.55 | 12 | 049681 | S | 紅色 | 1 |
3761 | 20180926 | 3.42 | 7 | 3036491 | XS | 黑色 | 1 |
3764 | 20180927 | 325.95 | 8 | 203521 | XL | 黑色 | 1 |
3763 | 20180927 | 177.56 | 10 | 2038593 | L | 藍色 | 1 |
限制
WRank 具有下列限制:
-
若 fmt 值是 0,且您想要對 WRank 使用雙重結果的文字部分,則您必須使用 Text() 搭配 Window(WRank)。例如:Text(Window(WRank(0), Unit, 'DESC', Age)) as UnitWRankedByAgeText。