Teradata中的多列摘要

时间:2015-10-05 10:55:36

标签: sql count teradata summary rollup

这里的第一个问题,希望你能提供帮助。

我有一个包含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;

必须有一个简单的方法吗?

1 个答案:

答案 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语句或电子表格来生成代码。