1 概述
双向筛选即双向交叉过滤,是Smarbi数据模型的一个新特性; 使用双向交叉筛选,可以在表关系的两侧应用筛选器,也可以通过将筛选器上下文传播到表关系另一侧的另一个相关表来应用筛选器。
在Smartbi中,使用双向筛选可以帮助你更好地理解数据之间的关系,并快速识别有趣的洞察,它能够大大提高你的数据分析效率,并使你能够更快地做出更好的决策。
2 筛选方向
设置交叉筛选方向将决定筛选器的传播方向,可能的交叉筛选选项取决于基数类型。
基数类型 | 交叉筛选选项 |
---|---|
一对多(或多对一) | 单向 默认:单向 |
一对一 | 单向 默认:双向 |
双向筛选说明
假设A与B表相关联:
- A多对一B:默认B可以筛选A,A不能筛选B,如果要A筛选B,可以开启双向筛选。
- A一对多B:默认A可以筛选B,B不能筛选A,如果要B筛选A,可以开启双向筛选。
- A一对一B:默认A可以筛选B,B可以筛选A。
在一对多关系中,交叉筛选方向始终从“一”侧开始,也可以选择从“多”侧开始(双向);
在一对一关系中,交叉筛选方向始终同时从两个表开始。
关系可设置为单向和双向;单向关系中,上下文筛选器可以从单侧传递到多侧,但不能反向传递。
3 适用场景
双向筛选可以满足特定要求的场景有以下三种:
3.1 特殊模型关系
在创建以下特殊模型关系类型时,双向关系起着重要作用:
- 一对一关系:所有一对一关系都必须是双向的,否则无法进行配置,一对一关系,详参:设置查询关系。
3.2 同步筛选器
在下图中,Customer表上的筛选器会自动传递至Sales表,然而Sales表上的筛选器不会传递到Product表上,更不会传递到Customer表。
这种情况普遍存在于大多数报表,在实际场景中,报表通常根据Customer或Product的属性划分销售量,根据销售量筛选Customer或Product是很少见的。
因此,启用双向筛选最普遍的原因是同步筛选器。
以下是通过双向筛选同步筛选器的简单场景。
1、把数据导入到模型中,并且创建数据模型。
2、创建好数据模型,去创建仪表盘:
- 下图的报表中有2个筛选器,一个用于Customer的”区域“,它包含以下俩项: 第一个筛选器是“地区”,它包含以下两项:“华南”和“华北”,此筛选器当前值“华北”;
第二个筛选器是“产品”,它包含以下三项:“T-shirt”、“Jeans”和“Hat”,未选中任何项(即未按任何产品筛选);
组件上的数量显示: 30。
3、当要查询地区为:华北,并且“产品”要显示与华北相关的选项。为了实现此行为,可以将 Product 与 Sales 表之间的关系配置为双向筛选。
4、“产品”筛选器现在列出一个项,即“T-shirt”。 此项表示唯一销售给”华北“的产品。
3 维度到维度分析
基于上文示例模型数据,查询“有多少个地区购买了牛仔裤“?
1、设置Sales与Customer的方向为双向筛选,如下图:
2、把产品作为筛选器,筛选地区,效果如下图,可以知晓没有任何地区购买了牛仔裤。