我希望mondrian按照我的维度表汇总。例如
fact_table(id int,dim_id)
dimension_table(dim_id,value)
fact_table中的最后一个值明显不在维度列表中
<Cube name="BYT">
<Dimension type="StandardDimension" visible="true"
highCardinality="false" name="d1">
<Hierarchy name="dimension_table" visible="true" hasAll="true">
<Table name="dimension_table">
</Table>
<Level name="dimension" visible="true" column="dim_id"
type="String" uniqueMembers="false" levelType="Regular"
hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="m1" column="id" datatype="Integer"
aggregator="count" visible="true">
</Measure>
<Cube>
当我触发以下查询时
select [Measure].[m1] on columns, {([d1])} on rows from [BYT]
结果是
- Dimension Measure
- All D1 4
我想让蒙德里亚做的事情是这样的
- Dimension Measure
- All D1 3
即。仅计算维度表中包含的值
请提出解决方案。我通读了文档中的汇总策略,但这对我的情况没有帮助。
答案 0 :(得分:0)
如果我理解你,你的立方体xml中有错误。
您应该distinct count
而不是count
。
<Measure name="m1" column="id" datatype="Integer"
aggregator="distinct count" visible="true">
</Measure>
希望这有帮助。
答案 1 :(得分:0)
您需要使用NON EMPTY上下文,这将导致与事实表的连接。
select [Measure].[m1] on columns, NON EMPTY {([d1])} on rows from [BYT]