题目连接:1075. 项目员工 I
思路
也是一道简单题,给了两张表一张项目表Project
,另一张员工表 Employee
字段employee_id
作为两张表的连接匹配字段,由于两张表都不为空,所以直接使用内连接(INNER JOIN
)
题目要求:查询每一个项目中员工的 平均 工作年限,精确到小数点后两位。
看到每一个项目,就想到要用到分组(ORDER BY
)
看到平均,就想到要用到AVG
函数
看到精确到小数点后两位,就会想到要用ROUND
函数
解题过程
首先将两张表进行内连接,看看连接后的记录(结果)
SELECT *
FROM project p
JOIN employee e
ON p.employee_id = e.employee_id
然后对其根据project_id
进行分组(GROUP BY p.project_id
),使用AVG
函数求平均工作年限(AVG(experience_years)
)或者使用等价的语句(SUM(experience_years) / COUNT(p.project_id)
),最后再外层加上ROUND
函数即可(ROUND(SUM(experience_years) / COUNT(p.project_id),2)
)。
Code
# Write your MySQL query statement below
SELECT p.project_id, ROUND(SUM(experience_years) / COUNT(p.project_id),2) AS average_years
FROM project p
JOIN employee e
ON p.employee_id = e.employee_id
GROUP BY p.project_id