如何在 Power BI 中使用 3 种不同的表关系?

问题描述

我正在尝试使用 3 个不同的表在 Power BI 中实现圆环图。有两个表 usersgroups 及其数据,有一个 group_users 表用于存储用户的组活动。 group_users 表有两个表的外键。

现在我想创建一个可视化,它可以轻松地将 3 个表格中的信息整合到一个表格中。与 Tableau 不同的是,我无法在单个表上进行多个联接,因为它会产生关系歧义问题。其示意图如下所示:

enter image description here

当我尝试创建 group_users' 和 users' 关系时,它给我“您不能在 group_users 和组之间创建直接的主动关系,因为这会在表 users 和 group_users 之间引入歧义。要使这种关系处于活动状态,首先停用或删除用户和 group_users 之间的关系之一。”作为错误注意,与 Redshift 集群建立连接。

圆环图应包含按不同颜色的用户年龄分隔的每个组的用户数。而且我应该能够过滤每个组的圆环图。

请告诉我,我应该如何在 Power BI 中创建这样的可视化?

解决方法

确保所有 3 个表之间都存在关系。

Power BI Model View

  1. 转到模型视图(左侧高亮显示)
  2. 检查表之间是否存在连接字段(突出显示的示例)
  3. 如果有连接字段,但没有活动连接(由表之间的线表示),将表 1 中的相关字段拖到表 2 中的相关字段上(与表 2 和表 3 相同)
  4. 返回报告视图。每个表中的字段应可用于包含在甜甜圈视觉中
,

如果不知道用户表中 group 和 group_members 表的外键,就很难说清楚。

尽管如此,根据我对您想要实现的理解,您应该将组表连接到 group_id 上的 group_members 表(这样当您单击组表中的特定组名时,它会过滤 group_members 表中特定组的成员)。然后,您需要将 group_members 表连接到我假设您在两个表中都有的某种 account_id 上的用户表。然后右键单击用户和 group_members 之间的关系箭头,选择首选项并将交叉过滤方向更改为两者
Set cross filter direction

这应该可以解决问题并为您提供所需的关系。您不需要用户和组表之间的关系。

,

首先停用用户和组之间的关系,因为这就是歧义的来源。完成此操作后,您可以毫无问题地激活从 group_members 到组的关系。

在可视化中,将组名放在值中,将年龄放在详细信息中(确保将年龄更改为文本数据类型,以便它显示为计数的类别,而不是要汇总的值)