以下是我的查询:
WITH
SET [sp] AS
([time.fin].[day].[${parDate}]:[time.fin].[day].[${partoDate}])
SET [factory] AS
{[organization].[org].[Fact1],[organization].[org].[Fact2],[organization].[org].[Fact3]}
MEMBER [btype].[b] AS
AGGREGATE(IIF('${param}'='All',
[btype].[type].members,
[btype].[type].[${param}]
))
SELECT
NON EMPTY {[factory]} ON COLUMNS,
NON EMPTY {[sp]}ON ROWS
FROM [cube1]
WHERE ([btype].[b], [Measures].[qty])
在此, btype是退化维度。 当我在CDE上执行此查询时...有时我得到 java.lang.nullpointerexception ,行为非常随机。通常,它给出结果,对于默认负载,它总是产生积极的结果。但是对于日期范围的变化,我随机得到了例外。
我的fact_table结构有5个正常维度和3个退化。
同时,我还观察到如果在查询中添加更多粒度,那么异常就不再出现了。但补充一点并不能满足我的要求。
是否与退化维度概念或高基数问题有关
答案 0 :(得分:0)
也许这个措施需要更加明确:
MEMBER [btype].[b] AS
AGGREGATE(IIF('${param}'='All',
[btype].[type].members,
[btype].[type].[${param}]
))
如果将其更改为以下内容,是否会遇到错误?
MEMBER [btype].[b] AS
Sum
(
IIF
(
'${param}' = 'All'
,[btype].[type].MEMBERS
,[btype].[type].[${param}]
)
,[Measures].[qty]
)