Contents
내가 작성한 쿼리
여러 대의 기계가 각각 동일한 수의 공정을 실행하는 공장 웹사이트가 있습니다.
각 기계가 공정을 완료하는 데 걸리는 평균 시간을 구하는 솔루션을 작성합니다.
프로세스를 완료하는 데 걸리는 시간은 '종료' 타임스탬프에서 '시작' 타임스탬프를 뺀 값입니다.
평균 시간은 기계에서 모든 프로세스를 완료하는 총 시간을 실행된 프로세스 수로 나눈 값으로 계산됩니다.
결과 테이블은 machine_id와 평균 시간을 processing_time으로 가져야 하며,
이는 소수점 셋째 자리로 반올림되어야 합니다.
결과 테이블을 순서에 상관없이 반환하세요.
내가 작성한 쿼리
MySQL, Oracle
-- start, end 별로 그룹화
SELECT
a.machine_id,
ROUND(AVG(b.timestamp - a.timestamp), 3) AS processing_time
FROM Activity a -- start 담당
JOIN Activity b -- end 담당
ON a.machine_id = b.machine_id
AND a.process_id = b.process_id
AND a.activity_type = 'start'
AND b.activity_type = 'end'
GROUP BY a.machine_id;
Share article