这里的第一个问题,希望你能提供帮助。
我有一个包含75+列的表,第一个是ID,其余只是1或空标志
示例:
UNIQUE_IDENT, SERVICE_FLAG, P1_PREFA, P2_PREFB, etc etc >> P75_PREF75
987651651, 1, 1, 1, 1
我想在不为所有75列写一个sum语句的情况下对每一列求和,我已经在SAS中看到它作为Proc Summary
对于此实例中的所有用户,Service_Flag = 1
proc summary data= TranzSeg_Permission ;
class SERVICE_FLAG;
var _:;
output out=segments_rollup (where=(_TYPE_=1) drop= _FREQ_) sum=;
run;
必须有一个简单的方法吗?
答案 0 :(得分:0)
您可以使用条件聚合执行此操作,但必须列出每列:
select unique_ident,
min(service_flag) as service_flag,
min(p1_prefa) as p1_prefa,
. . .
from TranzSeg_Permission
group by unique_ident;
我正在使用min()
因为你说带有ident的“所有”行都有服务标志= 1。
您可以通过获取列名并使用SQL语句或电子表格来生成代码。