我正在用罗斯文数据库进行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
结果是:
对于英国和美国,我似乎无法在同一列上获得不同的平均值。有可能吗? 希望我对我的问题很清楚。 不胜感激。
答案 0 :(得分:2)
子查询不是必需的。我可能不同意您的年龄计算方法,但是您可以使用它:
select Country, COUNT(EmployeeID) as NumberOfEmployees,
avg(year(getdate() - year(birthdate)) as average
from Employees
group by Country;
这会将平均值放在不同的行上。