문제 출저
문제 풀이
각 기계가 프로세스를 완료하는데 걸리는 평균 시간을 구해야 합니다.
완료하는데 걸리는 시간은 종료 시간에서 시작 시간을 뺀 값 입니다. (완료 시간 = 종료 시간 - 시작 시간)
평균 시간은 소수점 이하 3자리로 표현합니다.
s, ,e 테이블 2개를 조인합니다.
machine_id, process_id 동일하게 조인합니다.
s 테이블은 시작 시각을 나타내고 e 테이블은 종료 시간을 나타냅니다.
avg(e.timestamp - s.timestamp)를 통해 평균을 구합니다.
round를 통해 소수점 이하 3자리로 표현합니다.
SQL
/*
각 기계가 프로세스를 완료하는 데 걸리는 평균 시간을 구한다.
완료하는데 걸리는 시간 종료 - 시작
평균 시간은 소수점 이하 3자리에서 반올림한다.
시작 시간과 종료 시간을 join을 통해서 구한다.
*/
select
s.machine_id,
round(avg(e.timestamp - s.timestamp), 3) as processing_time
from
Activity as s
join
Activity as e on s.machine_id = e.machine_id
and s.process_id = e.process_id
and s.activity_type = 'start'
and e.activity_type = 'end'
group by
s.machine_id