【发布时间】:2015-02-06 06:16:19
【问题描述】:
在 Teradata 中,我想做的是通过保留聚合值并从聚合值计算新值来创建两个聚合值。
我已经完成了这个简单的查询
select
a.*,
def / n as derived_dr
from
(select
obsdate
, sum(def) as def
, count(*) as n
from
some_table
group by obsdate) as a;
但是在 SAS/SQL 中我可以做例如
select
a.*
, sum(def) as def
, count(*) as n
, def / n as derived_dr
from
some_table as a;
这更简单,更容易理解。但是,如果我在 Teradata 中尝试上述代码,则会出现错误
选定的非聚合值必须是关联组的一部分
我原来的 Teradata 解决方案是实现这一目标的最佳方式吗?我正在寻找在 Teradata 中执行此操作的最合适的方法,我认为应该有一个不使用子查询的解决方案。
【问题讨论】:
-
a.*是some_table的别名,在您的FROM子句中没有别名吗? -
@RobPaller 正确。更新了我的代码