mysql - 想用sql語句查詢平均值,為何不是平均值呢?
問題描述
employee表的全部數(shù)據(jù):
SELECT EMPLOYEE_id,salary,avg(salary) FROM test1.employees group by employee_idhaving avg(salary)>8000;
使用這個查詢語句想得到平均工資大于8000的平均工資,可是為什么結(jié)果不是平均工資呢?
問題解答
回答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
