在mysql中使用group by的平均值

ash*_*ish 0 mysql sql select

我有三张桌子

EMPLOYEE table with ID and NAME
COMPANY table with ID and NAME
and 
SALARY table with EMPLOYEE_ID, COMPANY_ID and SALARY
Run Code Online (Sandbox Code Playgroud)

我想打印平均工资大于或等于 40000 的每个公司的名称

我的查询是

Select distinct COMPANY.NAME from COMPANY,SALARY,EMPLOYEE WHERE SALARY.COMPANY_ID=COMPANY.ID and (select avg(SALARY) from SALARY,EMPLOYEE WHERE SALARY.EMPLOYEE_ID=EMPLOYEE.ID) >=40000;
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 9

您可以按公司名称分组并在having子句中包含条件:

SELECT   c.name
FROM     company c
JOIN     salary s ON c.id = s.company_id
GROUP BY c.name
HAVING   AVG(salary) >= 40000
Run Code Online (Sandbox Code Playgroud)