我输入的数据如下
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中实现上述场景的逻辑。
提前致谢,
尚穆根
答案 0 :(得分:0)
根据您的数据来源,如果您的来源是表格,可以通过SQL解决它。
如果您想要或只需要在DataStage中执行此操作,您可以使用复制阶段分叉数据并将一个输出馈送到聚合器阶段,您可以在其中计算每个组的总和。然后将副本的另一个输出与聚合器的结果与漏斗阶段(其行为类似于SQL中的联合)组合。就是这样。
答案 1 :(得分:0)
对于上面的例子,我们可以使用SaveInputRecord()和GetSavedInputRecord()和LastRowInGroup()函数在变换器中实现它。
IBM为这种情况提供了perfect example。
注意:如果数据很大,因为它使用缓存,性能会受到影响。因此,如果您的数据量巨大,那么最好在聚合后拆分源并执行连接,或者如果source是数据库,则可以使用sql轻松完成。