我想从这张表中得到:
[ProductCode] [ClientNO] [Fund]
11 3 100
12 4 45
11 3 18
12 4 5
对此:
[ProductCode] [ClientNO] [Fund]
11 3 118
12 4 50
当所有给定的变量都匹配时,基本上总和FUND
。
我差不多有这句话:
Proc sql;
create table SumByCombination as
select *, sum(Fund) as Total
from FundsData
group by ProductCode,ClientNO
;
quit;
但是有了这个,我得到所有的行(重复)和一个SUM列。
编辑:这就是我得到的。
[ProductCode] [ClientNO] [_SUM_]
11 3 118
12 4 50
11 3 118
12 4 50
我知道这应该是一个明智的选择,但我一直陷入困境。 在Proc SQL中最简单的方法是什么?其他方法怎么样?
由于
答案 0 :(得分:2)
在查询中停止使用SELECT *
。您应该明确标识希望SELECT返回的列。
选择*是令人讨厌和邪恶的,如果有的话,应该很少使用。
以下是SQL Fiddle,它会返回您的预期结果
select ProductCode
,ClientNO
,sum(Fund) as Total
from FundsData
group by
ProductCode
,ClientNO
答案 1 :(得分:2)
你正在使用SAS,所以使用SAS方式 - PROC意味着。
proc means data=fundsdata;
var fund;
class productcode clientno;
types productcode*clientno;
output out=sumbycombination sum(fund)=fund;
run;