mysql - 想用sql语句查询平均值,为何不是平均值呢?
PHPz
PHPz 2017-04-17 15:04:36
[MySQL讨论组]

employee表的全部数据:

SELECT EMPLOYEE_id,salary,avg(salary) FROM test1.employees
group by employee_id
having avg(salary)>8000;

使用这个查询语句想得到平均工资大于8000的平均工资,可是为什么结果不是平均工资呢?

PHPz
PHPz

学习是最好的投资!

全部回复(3)
高洛峰

因为你group by id,每个id下不是只有一个工资么

select EMPLOYEE_id,salary,(select avg(salary) FROM employees)  from employees where salary > (select avg(salary) FROM employees);

大概可以,你试试看吧

怪我咯

你是按照employee_id分组的,表记录里面每个employee_id就只有一条记录,你avg不就只有一个值吗.
你如果想要全部员工的平均工资就不要groupb by了

迷茫

理解有问题,平均工资,平均的什么呢,如果是针对employee_id的话,一个人的工资怎么能说平均工资呢。一般来说是某个部门下平均工资大于8000的员工工资吧

select t.salary,t.employee_id,t1.avg_salary from employees t inner join (select department_id,avg(salary) avg_salary from employees group by department_id) t1 on t.department_id = t1.department and t1.avg_salary > 8000

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号