使用维度计算的度量

Posted

技术标签:

【中文标题】使用维度计算的度量【英文标题】:Calculated Measure using dimension 【发布时间】:2010-04-16 14:38:10 【问题描述】:

我正在尝试在 SSAS 中构建一个包含维度参数的计算度量。我有两个事实:成员和订单和一个维度:日期。成员代表我网站上的所有唯一成员。订单通过代表唯一用户的事实键与成员相关联。 Orders 还包含一个表示订单供应商的键。 Orders 包含日期维度的键。

FactMember - MemberFactKey - 会员ID 事实顺序 - FactOrderKey - 订单编号 - FactMemberKey - DimVendorKey - DimDateKey 昏暗日期 - DimDateKey - 财年

我试图建立的计算指标是会员订购的唯一供应商的数量。计算的值当然必须根据日期维度而变化。

【问题讨论】:

您是指“俱乐部”中的成员还是“维度”中的成员? 【参考方案1】:

这里不应该使用 DISTINCTCOUNT 函数吗?然后可以在此查询和其他地方使用创建不同数量的供应商。

WITH MEMBER [Test]
AS
DISTINCTCOUNT([Vendor].[Vendor].[Vendor])

我会提前说,这可能会很慢(取决于数据量/分布),因此如果此查询将成为设计的流行/重要部分,则可能值得考虑重组。

【讨论】:

【参考方案2】:

我很困惑,将 Member 和 Orders 设为单独的维度然后从 FACT 表(例如 Fact.Sales)中引用它们会更有意义。如果您在某种 member_key 上键入您的成员维度,这将消除甚至构建计算成员的需要。

【讨论】:

重新设计我的整个事实和维度结构以使单个计算成员更易于构建并不是一个真正的选择。 嗯,这个计算似乎很常见,这就是为什么我得出结论可能需要重新评估立方体本身的结构。我不知道在你的情况下这不在可能的范围内。

以上是关于使用维度计算的度量的主要内容,如果未能解决你的问题,请参考以下文章

维度成员作为 MDX 中的计算度量

计算的度量/维度

维度的计算成员

通过过滤度量值在 MDX 中定义计算成员

在 MDX 中为使用事实表中的相同列的不同度量构造计算度量

维度模型数据仓库基础对象概念一览