[英]using average with group by in mysql
I have three table我有三张桌子
EMPLOYEE table with ID and NAME
COMPANY table with ID and NAME
and
SALARY table with EMPLOYEE_ID, COMPANY_ID and SALARY
I wanted to print the name of every company where the average salary is greater than or equal to 40000我想打印平均工资大于或等于 40000 的每个公司的名称
My query is我的查询是
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;
You could group by the company name and have the condition in the having
clause:您可以通过公司名称族且具有在条件
having
条款:
SELECT c.name
FROM company c
JOIN salary s ON c.id = s.company_id
GROUP BY c.name
HAVING AVG(salary) >= 40000
SELECT DISTINCT COMPANY.NAME FROM COMPANY INNER JOIN SALARY ON COMPANY.ID = SALARY.COMPANY_ID INNER JOIN EMPLOYEE ON EMPLOYEE.ID = SALARY.EMPLOYEE_ID GROUP BY COMPANY.NAME HAVING AVG(SAL)>=40000
SELECT T1.NAME FROM COMPANY AS T1 INNER JOIN (SELECT COMPANY_ID, AVG(SALARY) AS avgSalary FROM SALARY GROUP BY COMPANY_ID) AS T2 ON T1.ID = T2.COMPANY_ID WHERE T2.avgSalary >= 40000;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.