在多个聚合函数SQL上执行Math运算符

时间:2016-07-01 13:54:28

标签: sql-server aggregate-functions

我的SQL查询中有2个聚合函数,我希望将它们相乘,但是当我尝试它时会给出错误"而不是GROUP BY表达式"。下面是我的查询的简化版本:

SELECT S.employee, 
       avg(A.expected_duration) as duration1, 
       avg(A.efficiency) as efficiency1,
       duration1 *efficiency1 as product1

FROM S inner join A 
ON S.job_no = A.Job_no
GROUP BY s.employee

我试过在数学之前放置一个聚合函数,但它没有给出正确的数据。我在这里不知所措,所以任何帮助都会受到赞赏。如果您还有其他需要,请告诉我。

1 个答案:

答案 0 :(得分:4)

您无法引用在同一选择语句中调用的字段的别名,您需要使用计算而不是别名

SELECT S.employee, 
       avg(A.expected_duration) as duration1, 
       avg(A.efficiency) as efficiency1,
       avg(A.expected_duration)*avg(A.efficiency) as product1

FROM S 
INNER JOIN A 
    ON S.job_no = A.Job_no
GROUP BY s.employee