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,并相应地过滤结果。
首先,我在 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,并相应地过滤结果。