如何在SAS中使用最小代码计算不同值的总和

如何在SAS中使用最小代码计算不同值的总和,sas,Sas,SASproc sql允许用户基于某些按维度分组的方法进行计数(不同的colname)。对于SUM(distinct colname),实现相同功能的最快方法是什么 需要数据: grp1 grp2 col1_sum col2_sum a b 50(20+30) 10 所以基本上,对于维度(a,b),我需要col1和col2中不同值的总和。你问题中提到的sum(不同col)应该有效: data have; input grp1 $1. grp2 $3 col1 col

SAS
proc sql
允许用户基于某些按维度分组的方法进行
计数(不同的colname)
。对于
SUM(distinct colname)
,实现相同功能的最快方法是什么

需要数据:

grp1 grp2 col1_sum     col2_sum
a      b    50(20+30)   10
所以基本上,对于维度(a,b),我需要col1和col2中不同值的总和。

你问题中提到的sum(不同col)应该有效:

data have;
input grp1 $1. grp2 $3 col1 col2;
datalines;
a b 20 .
a b 30 10
a b 20 10
a b  . 10
;run;

proc sql;
select
  grp1, grp2,
  sum(distinct col1) as s1,
  sum(distinct col2) as s2,
from have
group by grp1, grp2;
run;
。。。应产生以下结果:

grp1 grp2   s1   s2
---- ---- ---- ----
   a    b   50   10

你能再澄清一点吗?你试过你在查询中发布的语法了吗?对我有用。
grp1 grp2   s1   s2
---- ---- ---- ----
   a    b   50   10