0

在 ActivePivot 中,配置 DISTINCT COUNT 聚合的最有效方法是什么?

例如,如果我想配置一个度量,为每个单元格返回对该单元格有贡献的不同产品的数量。

4

1 回答 1

0

由于 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 解决方案那样灵活,用户可以在最后一刻将其应用于任何层次结构。但同样,它的性能更高,尤其是在具有大基数的层次结构的情况下。

于 2014-08-19T14:14:40.667 回答