如何在informatica中获取列的最大值?
我是信息世界的新手 我的消息来源是这样的如何在informatica中获取列的最大值?,informatica,Informatica,我是信息世界的新手 我的消息来源是这样的 emp_id|emp_name|emp_sal 1 | A | 2500 2 | C | 2800 3 | M | 2100 我希望目标是这样的 emp_id|emp_name|emp_sal|maximum_salary 1 | A | 2500 | 2800 2 | C | 2800 | 2800 3 | M | 210
emp_id|emp_name|emp_sal
1 | A | 2500
2 | C | 2800
3 | M | 2100
我希望目标是这样的
emp_id|emp_name|emp_sal|maximum_salary
1 | A | 2500 | 2800
2 | C | 2800 | 2800
3 | M | 2100 | 2800
请帮帮我:)
谢谢您可以使用聚合器转换。使用表达式MAX(emp_sal)在聚合器转换中创建输出端口。不要按端口选择任何组 现在,使用Joiner转换将聚合器的输出和原始源数据连接起来 此外,您还必须在聚合器之前使用分类器(键:emp_id),并在聚合器和Joiner中选择排序输入选项
SQ --> Sorter --> Aggregator -- Joiner --> Target
|_________________________^
从性能的角度来看,我们需要使用最少数量的转换,并尽量减少阻塞转换,如Joiner、Aggregator 在这里,我们可以通过两种转换实现这一点
SQ --> Sorter --> Expression --> Output
在分拣机中,分拣键为emp\u sal
asdescending
表达式转换中的Max Salary
表达式
Variable_Input1 - Variable_Input2
Input - emp_sal
Variable_Input2 - (IIF(Input > Variable_Input1, Input, Variable_Input1))
Output - Variable_Input2
注意:变量\u Input1和变量\u Input2的数据类型为整数
希望这会有所帮助。请完成以下步骤 SQ-->分类器-->表达式-->Tgt 在分拣机t/r中,分拣键为emp_sal,如下行 表达式转换中的最大薪资表达式
Variable_Input1 - Variable_Input2
Input - emp_sal
Variable_Input2 - (IIF(Input > Variable_Input1, Input, Variable_Input1))
Output - Variable_Input2
v_端口1(整数)-v_端口2
v_端口2(整数)-IIF(emp_sal>v_端口1,emp_sal,v_端口1)
o_端口-v_端口2
输出是这样来的
emp|u id | emp|u name | emp|u sal |最高工资
1 | A | 2500 | 2800
2 | C | 2800 | 2800
3米2100米2800米
这对我有用
请检查并让我知道。欢迎来到Stack Overflow!你没有告诉我们你到目前为止做了什么,如果它不起作用。我们是志愿者。我们将帮助您修复代码,但没有人会为您编写整个程序。如果我不使用组,它将以3 | M | 2100 | 2800(仅最后一行)的形式出现。。如果我不使用组作为1 | A | 2500 | 2500 | 2 | C | 2800 | 2800 3 | M | 2100 | 2100 | 2100,这就是为什么你需要细木工!您不能仅通过使用聚合器来实现这一点。