在 ActivePivot 中,配置 DISTINCT COUNT 聚合的最有效方法是什么?
例如,如果我想配置一个度量,为每个单元格返回对该单元格有贡献的不同产品的数量。
在 ActivePivot 中,配置 DISTINCT COUNT 聚合的最有效方法是什么?
例如,如果我想配置一个度量,为每个单元格返回对该单元格有贡献的不同产品的数量。
由于 ActivePivot 支持 MDX 语言,您可以在 MDX 中进行操作。下面是一个示例,我们定义了一个 MDX 计算成员,该成员计算对单元格有贡献的不同办公桌。(此查询将在 ActivePivot Sandbox 示例应用程序上运行)
WITH
Member [Measures].[Desk Count] AS Count(
Descendants(
[Bookings].[Desk].CurrentMember,
[Bookings].[Desk].[Desk]
),
EXCLUDEEMPTY
)
SELECT NON EMPTY Hierarchize(
DrilldownLevel(
[Underlyings].[Products].[ALL].[AllMember]
)
) ON ROWS
FROM [EquityDerivativesCube]
WHERE [Measures].[Desk Count]
但最有效的方法是使用后处理器,因为后处理器运行在 ActivePivot 的核心聚合引擎中,而 MDX 引擎运行在更高层。“LEAF_COUNT”后处理器就是为此目的而设计的,下面是您在沙盒应用程序中声明它的方式:
<postProcessor name="DeskCount" pluginKey="LEAF_COUNT" formatter="LONG[#,###]">
<properties>
<entry key="leafLevels" value="Desk@Desk@Bookings" />
</properties>
</postProcessor>
由于后处理器必须在多维数据集的配置中声明,它不像 MDX 解决方案那样灵活,用户可以在最后一刻将其应用于任何层次结构。但同样,它的性能更高,尤其是在具有大基数的层次结构的情况下。