Empleados Del Proyecto I
Escribe una consulta SQL que reporte el promedio de los aƱos de experiencia de todos los empleados en cada proyecto, redondeado a 2 decimales. Regresa el resultado en cualquier orden.
Tabla: Project
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| project_id | int |
| employee_id | int |
+-------------+---------+
- (`project_id`, `employee_id`) es la llave primaria de esta tabla.
- `employee_id` es una llave foranea hacia la tabla `Employee`.
- Cada fila de esta tabla indica que el empleado con `employee_id` estĆ” trabajando en el proyecto con `project_id`.
Tabla: Employee
+------------------+---------+
| Column Name | Type |
+------------------+---------+
| employee_id | int |
| name | varchar |
| experience_years | int |
+------------------+---------+
- `employee_id` es la llave primaria para esta tabla. Se garantiza que `experience_years` no es `NULL`.
- Cada fila de esta tabla contiene informaciĆ³n de un empleado.
El formato del resultado de la consulta se muestra en el siguiente ejemplo.
Ejemplo 1:
Entrada:
Tabla Project:
+-------------+-------------+
| project_id | employee_id |
+-------------+-------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
+-------------+-------------+
Tabla Employee:
+-------------+--------+------------------+
| employee_id | name | experience_years |
+-------------+--------+------------------+
| 1 | Khaled | 3 |
| 2 | Ali | 2 |
| 3 | John | 1 |
| 4 | Doe | 2 |
+-------------+--------+------------------+
Salida:
+-------------+---------------+
| project_id | average_years |
+-------------+---------------+
| 1 | 2.00 |
| 2 | 2.50 |
+-------------+---------------+
- ExplicaciĆ³n: El promedio de los aƱos de experiencia para el primer proyecto es (3 + 2 + 1) / 3 = 2.00 y para el segundo proyecto es (3 + 2) / 2 = 2.50
SoluciĆ³n:
SELECT p.project_id,
ROUND(AVG(e.experience_years), 2) AS average_years
FROM project p INNER JOIN employee e
ON e.employee_id = p.employee_id
GROUP BY project_id;