[英]using average with group by in mysql
我有三張桌子
EMPLOYEE table with ID and NAME
COMPANY table with ID and NAME
and
SALARY table with EMPLOYEE_ID, COMPANY_ID and SALARY
我想打印平均工資大於或等於 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;
您可以通過公司名稱族且具有在條件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.