SQL从相同的选择和表中获取不同的AVG

时间:2018-12-08 21:50:32

标签: sql

我正在用罗斯文数据库进行SQL研究,我试图显示每个国家有多少名员工及其平均年龄。 到目前为止,这是我设法做到的:

select Country,COUNT(EmployeeID) 'AmountOfEmployees',
(select AVG(year (getdate()) - year (birthdate)) from Employees where Employees.Country = 'USA') 'USA_Average_Age',
(select AVG(year (getdate()) - year (birthdate)) from Employees where Employees.Country = 'UK') 'UK_Average_Age'
from Employees
group by Country

结果是:

QueryResult

对于英国和美国,我似乎无法在同一列上获得不同的平均值。有可能吗? 希望我对我的问题很清楚。 不胜感激。

1 个答案:

答案 0 :(得分:2)

子查询不是必需的。我可能不同意您的年龄计算方法,但是您可以使用它:

select Country, COUNT(EmployeeID) as NumberOfEmployees,
       avg(year(getdate() - year(birthdate)) as average
from Employees
group by Country;

这会将平均值放在不同的行上。