教程 - 创建集合表达式
可以构建 Qlik Sense 中的集表达式 以支持数据分析。在这种情况下,分析通常被称为集合分析。集合分析提供了一种定义范围的方法,该范围不同于应用程序中当前选择所定义的记录集。
您将学到的内容
本教程提供用于使用集合修饰符、标识符和运算符构建集合表达式的数据和图表表达式。
谁应当完成该教程
本教程面向熟悉使用脚本编辑器和图表表达式的应用程序开发人员。
在开始之前需要做的工作
Qlik Sense Enterprise Professional 访问权限分配,允许您加载数据和创建应用程序。
延伸阅读和资源
-
帮助中的 集合分析 主题提供集合分析的概述、集合表达式元素的详细描述以及详细示例。
- Qlik 提供了各种各样的资源帮助您进行深入学习。
- 培训,包括免费的在线课程,可在 Qlik Continuous Classroom 获取。
- 讨论论坛、博客等可见于 Qlik Community。
视频
以下视频补充了本教程。
第一个视频显示与本教程中描述的基本集合表达式类似的基本集合表达式。第二个视频显示了更复杂的集合表达式。
集合表达式中的元素
集合表达式包含在聚合函数中,例如 Sum()、Max()、Min()、 Avg() 或 Count()。集合表达式由称为元素的构建块构造而成。这些元素是集合修饰符、标识符和运算符。
例如,以上集合表达式是从聚合 Sum(Sales) 生成的。集合表达式包含在外部的花括号中: { }
表达式中的第一个操作数为: $<Year={2021}>
此操作数返回当前选择的年份 2021 的销售额。修饰符 <Year={2021}>,包含 2021 年的选择。$ 集合标识符表示集合表达式基于当前选择。
表达式中的第二个操作数为: 1<Country={'Sweden'}>
该操作数对 Sweden 返回 Sales。修饰符 <Country={'Sweden'}>,包含国家 Sweden 的选择。1 集合标识符表示将忽略在应用程序中所做的选择。
最后,+集合运算符指示表达式返回一个集合,该集合由属于两个集合操作数中任何一个的记录组成。
有关更多信息,请参阅:
创建集合表达式教程
完成以下步骤以创建本教程中所示的集合表达式。
创建新应用程序并加载数据
执行以下操作:
- 创建新应用程序。
- 单击脚本编辑器。或者,单击导航栏中的准备 > 数据加载编辑器。
- 在数据加载编辑器中创建新部分。
- 复制以下数据并粘贴到新部分中: 集合表达式教程数据
-
单击加载数据。数据作为内联加载加载。
有关内联加载的详细信息,请参阅: 内联加载
使用修饰符创建集合表达式
集合修饰符由一个或多个字段名组成,每个字段名后面都有一个应在该字段上进行的选择。修饰符由尖括号括起。例如,在此集合表达式中:
Sum ( {<Year = {2015}>} Sales )
修饰符为:
<Year = {2015}>
此修饰符指定仅选择 2015 年的数据。包含修饰符的花括号表示集合表达式。
执行以下操作:
-
在工作表中,从导航栏打开资产面板,然后单击图表。
-
将 KPI 拖到工作表上,然后单击添加度量。
-
单击 Sales,然后为聚合选择 Sum(Sales)。
KPI 显示所有年份的销售额总和。
-
复制并粘贴 KPI 以新建 KPI。
-
单击新的 KPI,单击度量下方的销售,然后单击打开表达式编辑器。
表达式编辑器连同聚合 Sum(Sales) 打开。
-
在表达式编辑器中,创建表达式以仅对 2015 求 Sales 总和:
- 添加花括号以指示集合表达式: Sum({}Sales)
-
添加尖括号表示集合修饰符: Sum({<>}Sales)
-
在尖括号中,添加要选择的字段,在本例中该字段为 Year,后跟等号。接下来,用另一组花括号括起 2015。所的的修饰符为:{<Year={2015}>}。
整个表达式为:
Sum({<Year={2015}>}Sales)
-
单击应用保存表达式并关闭表达式编辑器。2015 年的 Sales总和如 KPI 中所示。
-
使用以下表达式再创建两个 KPI:
Sum({<Year={2015,2016}>}Sales)
上方的修饰符为 <Year={2015,2016}>。表达式将返回 2015 年和 2016 年 Sales 的总和。
Sum({<Year={2015},Country={'Germany'}>} Sales)
上方的修饰符为 <Year={2015}, Country={'Germany'}>。表达式将返回 2015 年的 Sales 总和,其中 2015 年与 Germany 相交。
添加集合标识符
上方的集合表达式将使用当前选择作为基础,因为未使用标识符。接下来,添加标识符以指定进行选择时的行为。
执行以下操作:
在工作表上,构建或复制以下集合表达式:
Sum({$<Year={"2015"}>}Sales)
$ 标识符将根据数据中的当前选择创建集合表达式。这也是未使用标识符时的默认行为。
Sum({1<Year={"2015"}>}Sales)
1 标识符将导致 2015 年上 Sum(Sales) 的聚合忽略当前选择。当用户进行其他选择时,聚合值不会更改。例如,当在下面选择了 Germany 时,2015 年总金额的值不变。
添加运算符
集合运算符用于包含、排除或交汇数据集。所有运算符都将集合用作操作数,并返回集协作为结果。
可以在两种不同的情况下使用集合运算符:
-
对集合标识符执行集合操作,表示数据中的记录集合。
-
对元素集、字段值或集合修饰符内部执行集合操作。
执行以下操作:
在工作表上,构建或复制以下集合表达式:
Sum({$<Year={2015}>+1<Country={'Germany'}>}Sales)
这里,加号 (+) 运算符为 2015 和 Germany 生成数据集的并集。正如上文对集合标识符所解释的,美元符号 ($) 标识符表示将使用第一个操作数 <Year={2015}> 的当前选择。1 标识符表示将忽略第二个操作数 <Country={'Germany'}> 的选择。
或者,使用减号 (-) 返回由属于 2015 但不属于 Germany 的记录组成的数据集。或者,使用星号 (*) 返回由属于这两个集合的记录组成的集合。
Sum({$<Year={2015}>-1<Country={'Germany'}>}Sales)
Sum({$<Year={2015}>*1<Country={'Germany'}>}Sales)