【问题标题】:SQL query issue (sqlbolt.com, ex.10)SQL 查询问题(sqlbolt.com,ex.10)
【发布时间】:2016-04-07 21:33:55
【问题描述】:

我无法完成http://sqlbolt.com/lesson/select_queries_with_aggregates 的一项练习 如果我不完成这项工作,我将无法更进一步。 问题是 ex.10 示例二(不知道如何在此处粘贴表格):

对于每个角色,找出该角色员工的平均工作年数

我的尝试是:

   /*SELECT max(years_employed) FROM employees;*/
   select role,avg(years_employed) from employees group by role;

而且 imo 它完成了这项工作,但页面不接受它(解决方案按钮似乎未激活)。有人可以帮忙吗?

【问题讨论】:

  • 我访问了该链接。你的查询没有错。看看那里给出的解决方案,他们希望显示所有列。
  • 任务要求不清楚,没有提到他们想要所有的列,而且解决方案中给出的查询只能在mySQL中工作,在每个其他RDBMS中都会给出错误消息因为每个未聚合的字段都需要在GROUP BY
  • 我访问了该网站。他们提供的答案是错误的。

标签: mysql sql sql-server


【解决方案1】:

试试这个

SELECT *, avg(years_employed) as average_Year FROM employees GROUP BY role

【讨论】:

  • 我认为您的查询不会起作用。 select 子句中的列应该在聚合函数中或在 group by 子句中
【解决方案2】:

如果您想为其他列获取至少一个列值,您可以使用以下查询:

Select role, 
       Min(Name) as Name, 
       Min(Building) as Building, 
       Min(Years_employed) as Years_employed, 
       avg(years_employed) as Average_years_employed  
from employees
Group By role

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多