QlikView - 排名函式



QlikView 中的Rank()函式用於顯示欄位中值的排名,並返回具有特定排名值的列。因此它在兩種情況下使用。第一種情況是在 QlikView 圖表中顯示欄位中值的排名,第二種情況是在聚合函式中僅顯示具有特定排名值的列。

輸入資料

描述 Rank 函式的示例中使用的資料如下所示。您可以將其另存為 .csv 檔案,並將其儲存在系統中 QlikView 可訪問的路徑。

Product_Id,Product_Line,Product_category,Quantity,Value
1,Sporting Goods,Outdoor Recreation,12,5642
2,Food, Beverages & Tobacco,38,2514
3,Apparel & Accessories,Clothing,54,2365
4,Apparel & Accessories,Costumes & Accessories,29,4487
5,Sporting Goods,Athletics,11,812
6,Health & Beauty,Personal Care,21,6912
7,Arts & Entertainment,Hobbies & Creative Arts,58,5201
8,Arts & Entertainment,Paintings,73,8451
9,Arts & Entertainment,Musical Instruments,41,1245
10,Hardware,Tool Accessories,2,456
11,Home & Garden,Bathroom Accessories,36,241
12,Food,Drinks,54,1247
13,Home & Garden,Lawn & Garden,29,5462
14,Office Supplies,Presentation Supplies,22,577
15,Hardware,Blocks,53,548
16,Baby & Toddler,Diapering,19,1247
17,Baby & Toddler,Toys,9,257
18,Home & Garden,Pipes,81,1241
19,Office Supplies,Display Board,29,2177

載入指令碼

以上資料透過使用指令碼編輯器載入到 QlikView 記憶體中。從“檔案”選單開啟指令碼編輯器,或按Ctrl+E。從“從檔案匯入資料”選項卡中選擇“表格檔案”選項,並瀏覽包含上述資料的檔案。單擊“確定”,然後按Ctrl+R將資料載入到 QlikView 的記憶體中。

rank_laod_script

使用 Rank() 函式建立圖表

接下來,我們按照以下步驟建立一個圖表,該圖表顯示關於維度 Product_Line 的欄位Value的排名。

選擇圖表型別

單擊圖表嚮導並選擇“直線表”作為圖表型別。單擊“下一步”

rank_chart_type

選擇圖表維度

“第一個維度”下拉列表中,選擇 Product_Line 作為維度。單擊“下一步”

rank_select_diemnsions

定義圖表表示式

在自定義表示式欄位中,提及如下所示的排名表達式。這裡我們考慮名為Value的數字欄位,它表示每個產品線下每個類別的銷售值。單擊“下一步”

rank_chart_expression

顯示圖表

在上一步中單擊“完成”後,將出現以下圖表,該圖表顯示每個產品線的銷售值的排名。

rank_chart_data

使用帶 Rank 的聚合函式

諸如 max、min 等聚合函式可以將 rank 作為引數來返回滿足特定排名值的列。我們考慮在指令碼編輯器中顯示以下表達式,它將給出每個產品線下最高銷售額的列。

# Load the records with highest sales value for each product line.
LOAD Product_Line, 
     max(Value,1)
FROM
[E:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
group by Product_Line;

建立工作表物件

讓我們建立一個表格框工作表物件來顯示上面給出的指令碼生成的資料。轉到選單“佈局”→“新建工作表物件”→“表格框”。出現以下視窗,我們在此視窗中提及表格的標題並選擇要顯示的所需欄位。單擊“確定”將在 QlikView 表格框中顯示來自 CSV 檔案的資料,如下所示。

rank_aggr_func
廣告
© . All rights reserved.