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 ソリューションほど柔軟ではなく、ユーザーが最終段階で任意の階層に適用できます。ただし、特に大きなカーディナリティを持つ階層のコンテキストでは、パフォーマンスが向上します。