Pentaho Spoon:将SQL脚本结果设置为新字段的值

时间:2017-07-03 16:57:56

标签: pentaho-spoon

我目前尝试了多种方式(执行SQL脚本,表输入,数据库连接)来完成我想要做的事情。我需要分别将下面创建的sql脚本创建的总和和计数放入一个全新的字段中,或者将这些值设置为常量。我试图在我的转换中稍后在计算器步骤中使用每个结果。目前我一直在尝试使用添加常量定义字段,然后使用执行SQL脚本的设置(打开或关闭变量替换,将字段名称放在“字段包含读取统计信息”中)。但没有任何效果。如果有人知道一个很好的方法来实现这一点,那将非常有帮助!

Select sum(days_in_hospital) days_in_hospital_sum from hospital_days
where unique_stay_id in
(select unique_stay_id from hospital_days group by unique_stay_id having COUNT(unique_stay_id)=1);



SELECT COUNT(DISTINCT member_id) as "Total_Employees" from Hospital_days

1 个答案:

答案 0 :(得分:0)

Group by文件夹中有两个漂亮的Statistic步骤。我通常使用Memory Group by

对于第二个问题:使用Input table导入数据SELECT * FROM Hospital_day并将流引导至Memory Group By且不Group field,并且一个名为Total-Employees的聚合,其类型为Number of Distinct Values,主题为member_id

enter image description here

对于第一个问题:您要求过滤在hospital_days中出现一次的unique_stay,并获取这些日期的总和。

SELECT * FROM Hospital-day(Memory) Group by unique stay获取Number_of_unique_stay。然后Filter输出您想要的行,即具有过滤器Number_of_unique_stay = 1的行。然后将days_in_hospita l与第二个(Memory) Group by相加。

此时,您发现第一个Group by删除了此列。 Bogger!再次打开这一步!并尝试在某处添加此列。您可以将其添加到Group fieldAggregates。但是将其添加到group field会仅根据unique_stay损坏计数。因此,您必须将day_in_hospital添加到聚合中。聚合显然是一个总和,因为总和之和是总和(答案对于平均值是不同的)。

enter image description here