문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
Table: Project
| Column Name | Type |
|---|---|
| project_id | int |
| employee_id | int |
(project_id, employee_id)는 이 테이블의 기본 키이다.
employee_id는 Employee 테이블의 외래 키이다.
각 행은 employee_id를 가진 직원이 project_id를 가진 프로젝트에 참여하고 있음을 나타낸다.
Table: Employee
| Column Name | Type |
|---|---|
| employee_id | int |
| name | varchar |
| experience_years | int |
employee_id는 이 테이블의 기본 키이다. experience_years는 NULL이 아닌 것을 보장한다.
각 행은 한명의 직원에 대한 정보를 포함한다.
각 프로젝트별 모든 직원의 평균 경력 연수를 소수점 둘째 자리까지 반올림하는 SQL 쿼리를 작성해라.
Input:
Project table
| project_id | employee_id |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
Employee table
| employee_id | name | experience_years |
|---|---|---|
| 1 | Khaled | 3 |
| 2 | Ali | 2 |
| 3 | John | 1 |
| 4 | Doe | 2 |
Output:
| project_id | average_years |
|---|---|
| 1 | 2.00 |
| 2 | 2.50 |
Explanation: 첫 번째 프로젝트에 대한 평균 경력 연수는 (3 + 2 + 1) / 3 = 2.00이고, 두 번째 프로젝트는 (3 + 2) / 2 = 2.50이다.
-- Write your PostgreSQL query statement below
select a.project_id, round(avg(b.experience_years), 2) as average_years
from Project A
join Employee b on a.employee_id = b.employee_id
group by a.project_id