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 に答える