PowerBI:与关系一侧指定的集合的多对多关系

问题描述 投票:0回答:1

场景:

  • 订单和小部件之间存在多对多关系。 IE。一个订单包含多个小部件,一个小部件可以包含在多个订单中
  • 在源数据(两个 JSON 文档
    orders.json
    widgets.json
    )中,关系由小部件端的
    in_orders
    集合表示。

示例:

// orders.json
[
  { order_id: 1, ...},
  { order_id: 2, ...},
  { order_id: 3, ...},
]

// widgets.json
[
  { widget_id: 1, in_orders: [2, 3], ...},
  { widget_id: 2, in_orders: [1], ...},
  { widget_id: 3, in_orders: [], ...}
]

问题:

  • 在 Power BI 中将其表示为有意义的多对多关系的推荐方式是什么?
  • 最终结果将让我过滤a)特定订单上的所有小部件和b)包含特定小部件的所有订单
powerbi dax powerquery powerbi-desktop data-modeling
1个回答
0
投票

在 Excel 中,最佳实践方法是拥有一个小部件表、一个订单表和一个小部件订单链接表。

如果是我,我会有六个疑问。

orders_json
只是导入和解析的orders.json 文件。
widgets_json
只是导入和解析的 widgets.json 文件。

我这样做只是因为我喜欢将“原始”数据作为自己的查询。然后...

orders
将是一个订单表,引用
orders_json
并做任何最有意义的事情来清理日期。

widgets_raw
将是一个小部件表,只有一个包含数字列表的“in_orders”列。

widgets
将从
widgets_raw
开始,删除“in_orders”列,然后执行任何最有意义的清理数据。

orders_widgets
将以
widgets_raw
开头,仅选择“widget_id”和“in_orders”列,展开“in_orders”列,并将“in_orders”列重命名为“orders_id”。

将最后三个查询导出到数据模型可以让您在

orders
orders_widgets
以及
widgets
orders_widgets
之间添加一对多关系。

© www.soinside.com 2019 - 2024. All rights reserved.