[LeetCode/MySQL50] 1661. Average Time of Process per Machine

2025. 2. 3. 01:27개인활동/코테

반응형

Problem

Solution

select tb1.machine_id, round(avg(tb2.timestamp - tb1.timestamp), 3) processing_time
from Activity tb1
join Activity tb2 on tb2.machine_id = tb1.machine_id and tb1.process_id = tb2.process_id
where tb1.activity_type = "start" and tb2.activity_type = "end"
group by tb1.machine_id;

 

계속 답이 제대로 안뜨길래 뭐지.. 하고 있었는데 tb2.activity_type이 아니라 tb2.process_id로 조건을 작성해놔서 답이 제대로 안나왔던 것이였다..

 

먼저 tb1을 기준으로 tb2와 조인을 해준다. 이 때 통계치를 내기 위해서는 machine_id끼리 데이터를 합쳐주어야 한다.

machine_id가 같은 애들끼리만 평균을 내야 하기 때문

 

또한 process_id가 같은 애들끼리 start와 end timestamp를 빼 평균을 내야 함

 

SQL문 동작 순서 자료가 있던 것 같은데.. 다시 좀 보고 싶다. 동작 순서가 기억이 안나요

반응형