如何根据 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 列上创建不同的计数度量吗?

在 Excel 中查看 OLAP 多维数据集详细信息

OLAP 多维数据集中计算成员中的条件

在 OLAP 多维数据集中存储不同时间间隔的最佳实践

OLAP SSAS MDX 如何获取先前选定/可见日期的度量值

如何将业务逻辑编程到 OLAP Cube 中?