为什么proc sql sum函数返回count而不是total values?

问题描述 投票:0回答:2

我在SAS学习proc sql。当我使用sql sum函数时,我意识到如果添加了一个比较运算符,则输出是行数而不是垂直和。如何获得垂直总和以及所述求和背后的机制是什么?

data apple;
input target;
cards;
0
1
3
5
;
run;

proc sql;
select sum(target ge 3)
from apple;
quit;

预期结果将是3 + 5 = 8;

实际结果是2

sas sum proc-sql
2个回答
2
投票
proc sql;
select sum(target)
from apple
where target ge 3;
quit;

我相信你的代码正在做的是评估(目标gt 3)作为布尔表达式,因此在SAS TRUE = 1和FALSE = 0时,sum函数添加了0,0,1,1。


1
投票

Craig的解决方案实际上更好,但是如果有其他情况,你可以做你尝试过的事情。

proc sql;
select sum(case when target ge 3 then target else 0 end)
from apple;
quit;
© www.soinside.com 2019 - 2024. All rights reserved.