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
广告