当外键在 JSON 数组中时,在 Power BI 中建立一对多关系?
Build one to many relationship in PowerBI, when foreign keys are inside JSON array?
我是 Power BI 的新手,我的第一个任务是连接到 JSON 数据源,我对包含键的数组有疑问。一些上下文,假设我们有用户和工厂:
用户
[
{
"email": "user1@foo-bar.com",
"user_id": "user1-id",
"factory": ['factoryId1']
},
{
"email": "user2@foo-bar.com",
"user_id": "user2-id",
"factory": ['factoryId2', 'factoryId1']
}
]
工厂
[
{
"factoryId": 'factoryId1',
"factoryName": "London"
},
{
"factoryId": 'factoryId2',
"factoryName": "Moscow"
}
]
现在我想建立的关系是:
+----------+------------+
| user_id | factory_Id |
+----------+------------+
| user1-id | factoryId1 |
| user2-id | factoryId1 |
| user2-id | facotryId2 |
+----------+------------+
我试过使用 "Add as new Query" 选项:
转换为 table 并展开行后,我 几乎 得到了想要的结果:
+------------+
| factory_Id |
+------------+
| factoryId1 |
| factoryId1 |
| facotryId2 |
+------------+
这里唯一缺少的是用户 ID。如何添加这些 ID? (或者也许有更简单的方法来做到这一点?)
使用"Expand to New Rows"(点击双箭头图标)
M 查询将如下所示:
let
Source = Json.Document(File.Contents("C:\Users\gluisotto\Desktop\json.json")),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"email", "user_id", "factory"}, {"Column1.email", "Column1.user_id", "Column1.factory"}),
#"Expanded Column1.factory1" = Table.ExpandListColumn(#"Expanded Column1", "Column1.factory")
in
#"Expanded Column1.factory1"
我是 Power BI 的新手,我的第一个任务是连接到 JSON 数据源,我对包含键的数组有疑问。一些上下文,假设我们有用户和工厂:
用户
[
{
"email": "user1@foo-bar.com",
"user_id": "user1-id",
"factory": ['factoryId1']
},
{
"email": "user2@foo-bar.com",
"user_id": "user2-id",
"factory": ['factoryId2', 'factoryId1']
}
]
工厂
[
{
"factoryId": 'factoryId1',
"factoryName": "London"
},
{
"factoryId": 'factoryId2',
"factoryName": "Moscow"
}
]
现在我想建立的关系是:
+----------+------------+
| user_id | factory_Id |
+----------+------------+
| user1-id | factoryId1 |
| user2-id | factoryId1 |
| user2-id | facotryId2 |
+----------+------------+
我试过使用 "Add as new Query" 选项:
转换为 table 并展开行后,我 几乎 得到了想要的结果:
+------------+
| factory_Id |
+------------+
| factoryId1 |
| factoryId1 |
| facotryId2 |
+------------+
这里唯一缺少的是用户 ID。如何添加这些 ID? (或者也许有更简单的方法来做到这一点?)
使用"Expand to New Rows"(点击双箭头图标)
M 查询将如下所示:
let
Source = Json.Document(File.Contents("C:\Users\gluisotto\Desktop\json.json")),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"email", "user_id", "factory"}, {"Column1.email", "Column1.user_id", "Column1.factory"}),
#"Expanded Column1.factory1" = Table.ExpandListColumn(#"Expanded Column1", "Column1.factory")
in
#"Expanded Column1.factory1"