MDX等效于SQL GROUP BY,用于排除重复行

时间:2011-04-01 20:38:24

标签: ssas mdx olap olap-cube

我的多维数据集有一个事实表,其中包含对任何实体进行的每个修改的行。我需要的是一个度量,它将根据所选维度返回实体的数量。 因此,如果用户从日期维度中选择一个月,则度量应返回当月修改的实体数(而不是修改数)。

在SQL中,这将是:

SELECT EntityID, COUNT(*)
FROM FactTable
WHERE Date BETWEEN X AND Y
GROUP BY EntityID

如何在MDX中执行此操作?当然,这对于立方体来说是一种非常常见的情况。

1 个答案:

答案 0 :(得分:3)

您的t-sql查询等同于mdx查询:

select 
    [Measures].[<Fact rows count measure>] on columns, 
    <Entity dimension members> on rows 
from [<Cube Name>] 
where (<month member>)

在上面的查询中[事实行计数度量]将是一个具有聚合公式Count - 行数的度量 但是,如果在切换到另一个维度时需要返回实体成员的不同数量,则基本上有几个选项:

  1. 在entityID密钥上创建一个独特的计数度量
  2. 使用表达式创建计算度量:count(存在(现有[Entity]。[Entity]。[Entity] .MEMBERS ,,'Measure Group Name'))
  3. HTH, Hrvoje Piasevoli