您的位置:首頁技術文章
文章詳情頁

mysql - 想用sql語句查詢平均值,為何不是平均值呢?

瀏覽:97日期:2022-06-20 13:26:28

問題描述

employee表的全部數據:mysql - 想用sql語句查詢平均值,為何不是平均值呢?

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

使用這個查詢語句想得到平均工資大于8000的平均工資,可是為什么結果不是平均工資呢?mysql - 想用sql語句查詢平均值,為何不是平均值呢?

問題解答

回答1:

因為你group by id,每個id下不是只有一個工資么

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

大概可以,你試試看吧

回答2:

你是按照employee_id分組的,表記錄里面每個employee_id就只有一條記錄,你avg不就只有一個值嗎.你如果想要全部員工的平均工資就不要groupb by了

回答3:

理解有問題,平均工資,平均的什么呢,如果是針對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

国产综合久久一区二区三区