如何使用数据阶段添加新的行作为组总
问题描述:
我有输入数据,如下面 CovNo type Price
10 med tot 110 10 med tot 120 10 dent tot 140 20 med tot 110 20 dent tot 130 20 med tot 120
我怎样才能产生象下面 CovNo type Price
10 med tot 110 10 med tot 120 10 dent tot 140 10 Group tot 370 20 med tot 110 20 dent tot 130 20 med tot 120 20 Group tot 360
我将知道的逻辑来实现上述的输出数据Datastage中的场景。
如何使用数据阶段添加新的行作为组总
由于提前,
尚穆根
答
根据您的数据源的一种方法是使用SQL来解决这个问题,如果你的源是表上。
如果您想要或需要在DataStage中执行此操作,只有您可以使用复制阶段分支数据,并将一个输出馈送到您计算每个组的总和的阶段。然后将副本的另一个输出与具有渠道阶段的聚合器的结果(其行为与SQL中的联合)相结合。而已。
答
对于上面的例子,我们可以使用SaveInputRecord()和GetSavedInputRecord()和LastRowInGroup()函数在变换器中实现它。
IBM为此类情形提供了一个perfect example。
注意:如果数据很大,因为它使用高速缓存,则性能会受到影响。所以如果你的数据很大,那么最好是在聚合之后拆分源代码并执行连接,或者如果你的源代码是数据库,你可以使用sql来轻松完成。