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.

#database#basic-aggregate

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;

slackmart blog Ā© 2024