項目表?Project:?
+-------------+---------+
| Column Name | Type ? ?|
+-------------+---------+
| project_id ?| int ? ? |
| employee_id | int ? ? |
+-------------+---------+
主鍵為 (project_id, employee_id)。
employee_id 是員工表 Employee 表的外鍵。
員工表?Employee:
+------------------+---------+
| Column Name ? ? ?| Type ? ?|
+------------------+---------+
| employee_id ? ? ?| int ? ? |
| name ? ? ? ? ? ? | varchar |
| experience_years | int ? ? |
+------------------+---------+
主鍵是 employee_id。
?
請寫一個 SQL?語句,查詢每一個項目中員工的?平均?工作年限,精確到小數點后兩位。
查詢結果的格式如下:
Project 表:
+-------------+-------------+
| project_id ?| employee_id |
+-------------+-------------+
| 1 ? ? ? ? ? | 1 ? ? ? ? ? |
| 1 ? ? ? ? ? | 2 ? ? ? ? ? |
| 1 ? ? ? ? ? | 3 ? ? ? ? ? |
| 2 ? ? ? ? ? | 1 ? ? ? ? ? |
| 2 ? ? ? ? ? | 4 ? ? ? ? ? |
+-------------+-------------+
Employee 表:
+-------------+--------+------------------+
| employee_id | name ? | experience_years |
+-------------+--------+------------------+
| 1 ? ? ? ? ? | Khaled | 3 ? ? ? ? ? ? ? ?|
| 2 ? ? ? ? ? | Ali ? ?| 2 ? ? ? ? ? ? ? ?|
| 3 ? ? ? ? ? | John ? | 1 ? ? ? ? ? ? ? ?|
| 4 ? ? ? ? ? | Doe ? ?| 2 ? ? ? ? ? ? ? ?|
+-------------+--------+------------------+
Result 表:
+-------------+---------------+
| project_id ?| average_years |
+-------------+---------------+
| 1 ? ? ? ? ? | 2.00 ? ? ? ? ?|
| 2 ? ? ? ? ? | 2.50 ? ? ? ? ?|
+-------------+---------------+
第一個項目中,員工的平均工作年限是 (3 + 2 + 1) / 3 = 2.00;第二個項目中,員工的平均工作年限是 (3 + 2) / 2 = 2.50
思路:連接以后按project分組,查平均數即可。
select project_id ,round(avg(experience_years),2) as average_years
from Project join Employee
on Project.employee_id = Employee.employee_id
group by project_id;
?