我正在尝试获取一个与相关度量仅具有不完整关系的维度。如果我们有两个表 A 和 B 及其 #'d 列,则 A.1 列中的集合将具有 B.1 集合中不存在的列成员。
在示例场景中,我们有三个表:
项目:由sql视图提供:T_Items
商品编号 | 项目 | 正常价格 |
---|---|---|
1 | 苹果 | 1.99 美元 |
2 | 香蕉 | 2.99 美元 |
3 | 葡萄 | 3.99 美元 |
4 | 火腿 | 4.99 美元 |
5 | 牛肉 | 5.99 美元 |
特价商品:由sql视图提供:T_Items_On_Sale
特价商品ID | 商品编号 | 销售价格 | 销售期间 |
---|---|---|---|
1 | 1 | 1.00 美元 | 1/1 - 1/10 |
2 | 1 | 1.00 美元 | 1/21 - 1/31 |
3 | 2 | $2.00 | 1/11 - 1/20 |
4 | 3 | $3.00 | 1/21 - 1/30 |
5 | 2 | 1.00 美元 | 1/1 - 1/10 |
销售:由sql视图提供:T_Sales
交易ID | 商品编号 | 日期 | 价格 | 数量 |
---|---|---|---|---|
1 | 1 | 1/2 | 1.00 | 2 |
2 | 4 | 1/23 | 4.99 | 1 |
3 | 3 | 1/22 | 3.00 | 2 |
4 | 1 | 1/15 | 1.99 | 1 |
5 | 2 | 1/4 | 1.00 | 1 |
6 | 5 | 1/17 | 5.99 | 1 |
根据上述数据,我正在尝试安排如下内容:
尺寸: | 关键栏目: | 提供数据表: |
---|---|---|
特价商品 | 特价商品ID | T_物品_特价 |
测量: | 提供数据表: | |
---|---|---|
销售 | T_销售 |
我做了如下的桥接定义:
事实加入专栏: | 桥台: | 加入专栏: | 连接列(维度表): |
---|---|---|---|
销售.ItemId | T_物品_特价 | T_Items_On_Sale.ItemId | 促销商品.ItemId |
Items_on_sale 的维度条目希望与基于商品 ID 的销售度量相关联。
在我的真实场景中,我试图与这个部分相关的维度相关的度量最终将遗漏每一个不完整的记录,并极大地改变结果。是否有更健康的方法将这些维度与这些措施联系起来?
在我自己的测试中,我尝试过:
两边一对一选择
是否根据商品ID或On Sale条目ID将“On sale”维度侧关联到其维度。
感谢您彻底解释问题。正如您所指出的,桥接表仅过滤桥接表中的 ID 的事实表(如 SQL 内部联接)。
要链接
T_Items_On_Sale
维度并保留事实表中的所有信息,您可以:
T_Items_On_Sale
使用不存在的所有项目 ID 来扩展 union
。对于没有任何销售的商品,价格和期间列将为空。T_Sales
和 T_Items_On_Sale
上 Item ID
和 Date
之间的 Sale Period
的左连接。现在,您可以将 T_Items_On_Sale
和 T_Items
作为维度单独链接到此表。