Table 实际上具有多列的架构 table 引用维度中的一列 table

Table Schema with multiple columns in fact table referring to one column in dimension table

首先,我在 Power BI 中创建了一个 table 模式,使用 R 来整理我的所有数据。

这是我的问题的一个简单示例。我有一个 table,其中包含 ID 号和与每个 ID 相关的几个人口统计信息。在这种情况下,您会看到与每个 ID 相关的 3 个人口统计数据,每个人口统计数据有一个 true/false(在我的工作情况下,我实际上有 95 个人口统计数据)。

ID Female Veteran Government
1 TRUE FALSE FALSE
2 FALSE FALSE TRUE
3 TRUE TRUE TRUE
4 FALSE FALSE FALSE

所以,让这成为事实吧table。维度 table 看起来像这样:

Demographic Key
Female 10
Veteran 11
Government 12

我需要在这两个 table 之间建立关系。我将使用 Power BI,所以我只能使用一个直接关系。主要目的是能够创建可视化效果,以过滤用户的选择。例如,如果用户对有多少 ID 是女性 退伍军人感兴趣,图表将只显示 ID #3。

照原样,维度 table 将不起作用,因为事实 table 中没有键来连接两者。为了使其正常工作,我需要在事实 table 中有一个且只有一个列,其中包含一个连接到维度 table 的键。看起来像这样:

ID Female Veteran Government Key
1 TRUE FALSE FALSE 10
2 FALSE FALSE TRUE 12
3 TRUE TRUE TRUE 10, 11, 12
4 FALSE FALSE FALSE

这不起作用,因为 Power BI 不会在“键”列中“搜索”键。据我所知,它每行只能有一个键,而不是一组键。我可能会制作出人口统计组合的钥匙。因此,对于 ID #3,键将是“10_11_12”,然后在维度 table 中也有那个确切的键。但是,如上所述,我有 95 个人口统计列,这真是一团糟。

我也曾尝试将上面的初始事实table设为长而不是宽:

ID Demographic Value Key
1 Female True 10
1 Veteran False 11
1 Government False 12
2 Female False 10
2 Veteran False 11
2 Government True 12
3 Female True 10
3 Veteran True 11
3 Government True 12
4 Female False 10
4 Veteran False 11
4 Government False 12

但是,Power BI 只会聚合数据。也就是说,对于我们的女性 退伍军人示例,图表将显示任何女性 ID 以及任何退伍军人 ID。因此,结果将显示 ID 的 #1 和 #3,但它应该只显示 #3(我需要女性 and 退伍军人而不是女性 or 退伍军人).

关于如何获得维度 table 和事实 table 以适应我的情况的任何想法?

如果这是你的事实Table

(身份证,女性,退伍军人,政府)

你的尺寸是

DimFemale、DimVeteran、DimGovernment 等。每个维度都有两行,可能只有一列。因此,当您除了维度键之外没有任何数据时,通常不会使用维度 tables。

I am wanting a filter in the filter pane that has a drop-down of all 95 demographics.

那不是维度 table,那是带有双向交叉过滤的子事实 table。只要有 (Id, Demographic) 并且只添加那些是 TRUE 的。

你只需要第一个table,不需要复杂化。

如果用户想知道女性和退伍军人 ID 的数量,您可以使用 slicer/filter 女性和退伍军人 ID,并相应地过滤结果。