SQL AVG无法开始工作

时间:2014-05-26 11:40:00

标签: sql average

我无法显示平均年龄和其他数据,我知道它应该显示多个字段,但它只显示一个字段。

SELECT EmpName, Age,AVG(Age)
FROM   Employee
WHERE  Age > ( SELECT AVG(Age)
               FROM   Employee
             )

3 个答案:

答案 0 :(得分:3)

您无法获得行和获得总体平均值。尝试加入他们:

SELECT e.EmpName
,      e.Age
,      a.AverageAge
FROM   Employee e
CROSS
JOIN   ( SELECT AVG(Age) AverageAge
         FROM   Employee
       ) a
WHERE  Age > AverageAge

答案 1 :(得分:2)

SELECT EmpName, Age, (SELECT AVG(Age) FROM Employee) AverageAge
FROM Employee
WHERE Age > (SELECT AVG(Age) FROM Employee);

这里是正确的代码,我想你不能在SELECT旁边使用AVERAGE(Age),因为它不是退出列。

答案 2 :(得分:1)

您可以使用HAVING子句来实现它

select name,age,avg(age)
from emp
group by name,age
having age > (select avg(age) from emp)