我目前尝试了多种方式(执行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
答案 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
。
对于第一个问题:您要求过滤在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 field
或Aggregates
。但是将其添加到group field
会仅根据unique_stay
损坏计数。因此,您必须将day_in_hospital
添加到聚合中。聚合显然是一个总和,因为总和之和是总和(答案对于平均值是不同的)。