時系列の監視データの中央値を計算しようとしています。
OLAP キューブには、日付ディメンション (最下位レベルは日付) と別の時間ディメンションがあります。(最低レベルは分)
特定の日については正しく計算されることがわかりましたが、月の値がロールアップされます。(その月は ~1.55 になるはずです)
WITH MEMBER [Measures].[Medianx] AS MEDIAN([Time].[Time Key].MEMBERS , [Measures].[Total of Values])
SELECT NON EMPTY {
[Measures].[Count of Values],
[Measures].[Minimum Value],
[Measures].[Maximum Value],
[Measures].[Total of Values],
[Measures].[Medianx]
} ON COLUMNS,
NON EMPTY ( [Date].[Date].[Date].MEMBERS ) ON ROWS
FROM [Environmental Data]
これを与える:
月の中央値は、5 つの個々の日の中央値より高くすることはできません。
OLAP でロールアップ時に選択した時間範囲全体で中央値を正しく計算するにはどうすればよいですか? (例: 日、月、年)
日付と時刻のディメンションが別々であることが原因でしょうか?
編集:私は、事実と 1:1 の関係を持っているだけの縮退次元であることがわかりました。その月は正しく計算されますが、非常に遅いです。(1429 行のデータで 2 分 30 秒)
WITH MEMBER [Measures].[Medianx] AS MEDIAN([Data Attributes].[DETL Key].MEMBERS, [Measures].[Total of Values])
ただし、日ごとにグループ化をクエリしようとすると、クエリが終了しません。