gpt4 book ai didi

MySql 命令行初学者建议

转载 作者:行者123 更新时间:2023-11-29 04:18:30 25 4
gpt4 key购买 nike

我是 MySql 的完全初学者,目前我正在努力练习。我有一张在不同部门工作的员工表,以及他们的收入等;我被困在以下问题上:

找出那些工作时间超过其部门平均工作时间的员工。

我试过:

    Select * from details where hours > (select avg(hours) from details);

但这只是给我工作时间超过所有员工平均水平的员工。所以我将其更改为:

    Select * from details where hours > (select avg(hours) from details group by department);

但这只是导致了

    Error 1242 <21000> returns more than one row

谁能帮我指出正确的方向?我附上了表格代码的图片。

Table Image

最佳答案

您遇到的错误是因为条件 (where hours > (subquery) ) 需要一个标量值(只有一个值)而您返回的更多(一个 avg/group - 这是因为子查询中的 group by 子句).通过仅在父部门的子查询中过滤,将只有一个平均值。像这样:

Select * 
from details d
where d.hours > (select avg(hours)
from details
where department = d.department
group by department);

关于MySql 命令行初学者建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33204268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com