问题描述
我正在尝试使用 3 个不同的表在 Power BI 中实现圆环图。有两个表 users
和 groups
及其数据,有一个 group_users
表用于存储用户的组活动。 group_users
表有两个表的外键。
现在我想创建一个可视化,它可以轻松地将 3 个表格中的信息整合到一个表格中。与 Tableau 不同的是,我无法在单个表上进行多个联接,因为它会产生关系歧义问题。其示意图如下所示:
当我尝试创建 group_users' 和 users' 关系时,它给我“您不能在 group_users 和组之间创建直接的主动关系,因为这会在表 users 和 group_users 之间引入歧义。要使这种关系处于活动状态,首先停用或删除用户和 group_users 之间的关系之一。”作为错误。 注意,与 Redshift 集群建立连接。
圆环图应包含按不同颜色的用户年龄分隔的每个组的用户数。而且我应该能够过滤每个组的圆环图。
请告诉我,我应该如何在 Power BI 中创建这样的可视化?
解决方法
确保所有 3 个表之间都存在关系。
- 转到模型视图(左侧高亮显示)
- 检查表之间是否存在连接字段(突出显示的示例)
- 如果有连接字段,但没有活动连接(由表之间的线表示),将表 1 中的相关字段拖到表 2 中的相关字段上(与表 2 和表 3 相同)
- 返回报告视图。每个表中的字段应可用于包含在甜甜圈视觉中
如果不知道用户表中 group 和 group_members 表的外键,就很难说清楚。
尽管如此,根据我对您想要实现的理解,您应该将组表连接到 group_id 上的 group_members 表(这样当您单击组表中的特定组名时,它会过滤 group_members 表中特定组的成员)。然后,您需要将 group_members 表连接到我假设您在两个表中都有的某种 account_id 上的用户表。然后右键单击用户和 group_members 之间的关系箭头,选择首选项并将交叉过滤方向更改为两者
Set cross filter direction
这应该可以解决问题并为您提供所需的关系。您不需要用户和组表之间的关系。
,首先停用用户和组之间的关系,因为这就是歧义的来源。完成此操作后,您可以毫无问题地激活从 group_members 到组的关系。
在可视化中,将组名放在值中,将年龄放在详细信息中(确保将年龄更改为文本数据类型,以便它显示为计数的类别,而不是要汇总的值)