【问题标题】:Return all rows after Aggregator - Informatica Powercenter返回聚合器之后的所有行 - Informatica Powercenter
【发布时间】:2016-10-11 10:46:07
【问题描述】:

图片 -

请参考图片以更好地了解场景 - 对于表中的输入,我有 5 列 COL1、COL2、COL3、COL4、COL5 - 场景 1、2、3、4 解释了我将收到的输入类型。 Col 4 中的值可以变化(例如 Col1 中相同值的 31-35 或 36-39) - SUM 列是每个场景的 VALUE 列中所有数字的值的总和,并且必须填充到所有行中。就像列 (SUM) 下场景 1 的每个单元格中的 50

要求 - 求和以获得值 ex- 50,然后在输出表中显示所有行 (3-20) + 列 G 所以输入表有 17 行 5 列(B,C,D,E,F) 输出应该有 17 行 6 列(B,C,D,E,F,G)

我可以通过在 Informatica 中分组和使用聚合转换来进行求和,但我无法显示所有行,因为分组返回一行。

【问题讨论】:

  • 在什么基础上你需要对这些值求和

标签: sql group-by netezza informatica


【解决方案1】:

根据列 B、C 和 D 进行聚合求和,然后使用连接器转换将聚合输出(4 行)与原始源行(17 行)连接起来。不要忘记在 joiner 中使用 sorted input,这对于这种 self join 是必需的。

Source ------> Sorter ----> Aggregator -----> Joiner ----->Target
                |                                ^
                |________________________________|

在 B、C 和 D 列上配置正常连接的连接器

【讨论】:

    【解决方案2】:

    您为什么不直接使用 Netezza 中的 SUM(Value) OVER (PARTITION BY COL1, ..., COLN) AS ValueSum 分析功能?您需要做的就是定义如何对总和进行分区。

    在此处阅读更多信息:https://www.ibm.com/support/knowledgecenter/SSULQD_7.2.1/com.ibm.nz.dbu.doc/c_dbuser_report_aggregation_family_syntax.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多