Report Studio基本概念三、聚合和积累聚合(Aggregation and rollup aggregation)

浏览: 2527

企业主想查看每个product的单位成本。同时,他们希望显示的条目按照product line分组,查看每个product line中单位成本最高的product。在报表的最后,他们还想查看全系列产品的平均成本。

准备工作

使用Product | Product line, Product | Product name  Sales Fact | Unit Cost作为列表的列创建一个简单的报表。

如何实施

1. 我们从检查Unit Cost列开始。点击此列并检查其Aggregation属性。

2. 设置此属性为Average

3. 选中Product lineProduct names两列,然后点击工具栏中的GROUP按钮。

4. 点击Unit Cost列,然后点击工具栏中的Aggregation按钮,选择下拉选单中的Aggregate选项。

5. 再次点击Aggregate按钮,选择Average选项。

Clipboard Image.png

6. 如下图所示的页脚被创建。

Clipboard Image.png

7. 现在删除Product line所对应的<Average(Unit cost)>所在行,Summary所对应的<Unit cost>所在行。此时,报表看起来应该如下图:

Clipboard Image.png

8. 点击Unit cost列,并在其属性框中修改rollup aggregate功能为Maximum

9. 运行并测试报表。

工作原理

此示例涉及了和值汇总相关的数据项的两个属性:

Aggregation属性

我们首先验证unit costaggregation属性,并将其设置为average。记住此处的unit cost来自sales表。此表的粒度为销售条目或者销售订单。这意味着每个产品对应了很多条unit cost的记录。

我们只希望为每个product显示一条记录,所以我们必须把unit cost按照合适的方式汇总。Aggregation属性决定了在product层级进行计算时,unit cost会显示什么值。如果此属性被设置为TOTALunit cost会被简单的全部相加,这当然不是我们希望看到的“单位成本”。所以此处我们设置为AVERAGE。当然,这里还可以设置为MINIMUM或者 MAXIMUM。这取决于需求如何。

Rollup aggregation属性

为了显示每个product的最大unit cost,我们在第4步时创建了一个“Aggregation”类型的页脚,并在第8步时将其Rollup Aggregation属性设置为Maximum

当然在此例中,我们可以直接从工具栏的Aggregate按钮的下拉选单中选择MAXIMUM.显示效果是一样的。但是,这样做会在查询中新建一个叫做的Maximum(Unit Cost)的数据项。在此例中我们的做法为查询和Native SQl减少了一个数据项。

多重聚合

我们还需要在报表的最后一栏显示显示总体的平均值,为了达到这样的效果我们需要创建一个新的数据项。所以我们在第5步时创建了一个基于unit cost的“Average”类型的聚合。此聚合计算出Average(Unit Cost),并且将其显示在product line和总体页脚行;接着我们在第7步中删除了不需要的聚合。

更多

当你创建了一个“Aggregate”类型的聚合时,对于每一个查询项来说,rollup aggregation属性都是很重要的。当其被设置为“Automatic”时,Cognos基于数据类型自己决定要使用的聚合函数,这是不被推荐的。最好的方式是一直设置AggregationRollup Aggregation属性为业务逻辑需要的选项。

推荐 0
本文由 zhengyi1943 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册