如何根据 OLAP 多维数据集中的度量计算不同的计数
Posted
技术标签:
【中文标题】如何根据 OLAP 多维数据集中的度量计算不同的计数【英文标题】:how to calculate count distinct based on a measure in OLAP cube 【发布时间】:2014-08-11 21:00:51 【问题描述】:我正在尝试根据事实表中名为“IsDailyActive”的属性为我的 SSAS OLAP 多维数据集中的计算成员“每日活跃用户”编写 MDX 查询
我有一个名为“Active Users”的度量,它使用 UserId 列上“Fact Activity”表中的 COUNT DISTINCT 聚合。我想通过在我的查询中将过滤器“Is Daily Active”设置为 True 来重用该度量并计算不同的用户数。
我试过了,但它给了我 null
WITH
SET MySet AS
[Measures].[Active Users]
MEMBER [Measures].[Daily Active Users] AS
DISTINCTCOUNT(MySet)
SELECT
[Measures].[Daily Active Users] ON COLUMNS
FROM MyDataCube
WITH
SET MySet AS
[Measures].[Active Users]
MEMBER [Measures].[Daily Active Users] AS
DISTINCTCOUNT(MySet)
SELECT
[Measures].[Daily Active Users] ON COLUMNS
FROM MyDataCube
WHERE
([Is Daily Active].[Boolean].&[True])
我做错了什么?
注意:“FactActivity”表中的 IsDailyActive 列属于“位”类型,因此行中有 0 或 1 个值。
【问题讨论】:
您包含的代码看起来像两个查询?让我格式化 OP,如果我错了你可以改回来。 【参考方案1】:如果度量值Active Users
已经存在于多维数据集脚本中,那么为什么以下方法不起作用?
SELECT
[Measures].[Active Users] ON COLUMNS
FROM MyDataCube
WHERE
([Is Daily Active].[Boolean].&[True])
【讨论】:
以上是关于如何根据 OLAP 多维数据集中的度量计算不同的计数的主要内容,如果未能解决你的问题,请参考以下文章
Analysis Services 2005 OLAP 多维数据集:我可以在 nvarchar 列上创建不同的计数度量吗?