[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문 동작 순서 자료가 있던 것 같은데.. 다시 좀 보고 싶다. 동작 순서가 기억이 안나요
반응형
'개인활동 > 코테' 카테고리의 다른 글
[LeetCode/MySQL50] 577. Employee Bonus (0) | 2025.03.10 |
---|---|
[LeetCode/MySQL50] 197. Rising Temperature (0) | 2025.01.28 |
[LeetCode/MySQL50] 1581. Customer Who Visited but Did Not Make Any Transactions (0) | 2025.01.22 |
[LeetCode/MySQL50] 1068. Product Sales Analysis I (0) | 2025.01.14 |
[LeetCode/MySQL50] 1378. Replace Employee ID With The Unique Identifier (0) | 2025.01.13 |