我有一个事实表,其中有 4 个日期列 CreatedDate、LoginDate、ActiveDate 和 EngagedDate。我有一个名为 DimDate 的维度表,其主键可以用作事实表中所有 4 个日期列的外键。所以模型看起来像这样。
但问题是,当我想根据日期列对度量进行子过滤时。例如:统计上个月创建并本月参与的所有用户。对于这种设计来说这是不可能的,因为当我使用创建日期过滤度量时,我无法进一步过滤参与日期的不同时间窗口。由于所有这些都连接到同一维度,因此它们不是独立工作的。
但是,如果我为每个列创建一个单独的日期维度表,并像这样连接它们,那么它就可以工作。 但是,当我在现实场景中的事实表中有 20 个不同的日期列时,这看起来非常麻烦,我必须创建 20 个不同的维度并将它们一一连接起来。有没有其他方法可以实现我的场景,而无需创建多个重复的日期维度?
最佳答案
这个概念称为角色扮演维度。您不必为每个日期一次将表添加到 DSV 或实际维度。而是添加一次日期,然后转到维度使用选项卡。单击“添加多维数据集维度”,然后选择日期维度。右键单击并重命名。然后更新关系以使用正确的字段。
有一个good article on MSSQLTips.com涵盖了这个主题。
关于ssas - 从一维表到单个事实表的多个联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29107715/