【问题标题】:Proc SQL, Aggregate of calculated valueProc SQL,计算值的聚合
【发布时间】:2015-08-13 08:39:00
【问题描述】:

我目前的查询如下:

create table Report as
select distinct
    a.Var1,
    count(distinct b.Var2) as Var2,

from tbl1 a

inner join tbl2 b
on a.Var3=b.Var3 and a.Var4=b.Var4

inner join tbl3 c
on c.Var3=b.Var3

group by a.Var1
order by Var2 desc
;

这工作正常,我得到以下结果

Var1---------------------------------------------- -Var2------------------------------------------------ ---------------------- 可口可乐零罐8X330ML-----19279---------------------------------------- -------------------------- 散装蔬菜------------------------11723------------ ----------------------------------------- 散装水果---------------------------------10496-------------- ------------------------------------------------ 面包-------------------------------------------6605----- -------------------------------------------------- ------------

我的问题是我想添加第三列来计算 Var2/max(Var2) 的百分比。请记住,此最大值始终位于第一行(如果有帮助的话)。

所以我希望我的结果是

Var1---------------------------------------------- Var2 ---Var3

可口可乐零罐8X330ML-----19279 -100%

散装蔬菜------------11723 --60.81%

散装水果---------------------------------10496-- 54.44%

面包-------------------------------------------6605-- - 34.26%

我试过了

create table Report as
   select distinct
   a.Var1,
   count(distinct b.Var2) as Var2,
   calculated Var2/max(calculated Var2)

但我收到错误“不支持以这种方式嵌套的汇总函数。 "

【问题讨论】:

    标签: proc-sql


    【解决方案1】:

    你总是可以嵌套查询:

    create table Report as  
    select  
        Var1,  
        Var2,  
        Var2/max(Var2) as pct_Var2  
    from (  
        select distinct  
            a.Var1,  
            count(distinct b.Var2) as Var2  
        from  
            (...)  
        group by a.Var1  
    )  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2012-10-04
      • 2021-05-22
      相关资源
      最近更新 更多