SELECT d.`name`,COUNT(e.id) AS number
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
WHERE c.`name` LIKE '%渡一%'
GROUP BY d.id,d.`name`;
SELECT c.`name`,COUNT(e.id) AS number
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
GROUP BY c.id,c.`name`;
SELECT c.`name`,CASE WHEN r.number IS NULL THEN 0 ELSE r.number END AS number
FROM company c LEFT JOIN(SELECT c.id, c.`name`,COUNT(e.id) AS number
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
WHERE TIMESTAMPDIFF(YEAR,joinDate,CURDATE())<=5
AND e.location LIKE '万家湾'
GROUP BY c.id,c.`name`) AS r on c.id=r.id;
SELECT e.location,COUNT(e.id) AS empnumber
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
WHERE c.`name` LIKE '%渡一%'
GROUP BY e.location;
SELECT *
FROM company
WHERE id IN(SELECT c.id
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
GROUP BY c.id,c.`name`
HAVING COUNT(e.id)>=200);
SELECT e.*
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
WHERE c.`name` LIKE '%渡一%' AND
e.salary>(
SELECT avg(e.salary)
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
WHERE c.`name` LIKE '%渡一%'
)
SELECT CHAR_LENGTH(e.`name`) AS 姓名长度,COUNT(e.id) AS 员工数量
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
WHERE c.`name` LIKE '%渡一%'
GROUP BY CHAR_LENGTH(e.`name`)
HAVING CHAR_LENGTH(e.`name`) IN (2,3)
SELECT c.`name`,SUM(e.salary) AS sumofsalary
FROM company AS c INNER JOIN department AS d ON c.id=d.companyId
INNER JOIN employee AS e ON d.id=e.deptId
GROUP BY c.id,c.`name`
ORDER BY sumofsalary