我想问一个我在任何地方都找不到的快速澄清问题。
考虑这个案例:
proc sql;
create table tableOne as
select distinct pol_state, year,
sum(EPTotal) as epa,
sum(Veh_BItotloss) as bia
from someTable
group by pol_state, year;
我的问题是,对于所有总和,还有不同的解释吗?陈述问题的另一种方式是:我们选择pol_state& year& epa& bia的独特组合吗?
感谢您的帮助!
答案 0 :(得分:1)
区别对此查询有些误解......
select field from table group by field
将返回与
相同的内容select distinct field from table.
如果您的表格与pol_state,year,EPTotal,Veh_BItotloss完全重复,并且如下所示:
1,1,5,5
1,1,8,4
1,1,8,4
您的查询将返回总和(eptotal)为21(5 + 8 + 8)。如果您认为第3行是第二行的副本,并且您想要返回总和13(5 + 8,忽略第二行8),那么您希望执行' distinct'总和之前的子查询中的逻辑:
create table tableOne as
select distinct pol_state, year,
sum(EPTotal) as epa,
sum(Veh_BItotloss) as bia
from (select pol_state, year,EPTotal,Veh_BItotloss from table group by pol_state, year,EPTotal,Veh_BItotloss ) a
group by pol_state, year
答案 1 :(得分:0)
以下是the conceptual order or evaluation of a select statement的参考资料。
在您的情况下,行按pol_state和year分组,然后求和,然后选择不同的行。在你的情况下,不同的是没有做任何事情,因为每隔一列都是一个聚合。
所以,不。你只是得到了不同的pol_state和年份。