[SQL] 걸린 시간 구하기

폼폼(YUNA AN)·2024년 10월 6일

사소한 발견

목록 보기
27/33
post-thumbnail

문제

1661. Average Time of Process per Machine

좋은 풀이!!

SELECT machine_id, 
        ROUND(
            AVG(
                CASE WHEN activity_type='start' THEN - timestamp ELSE timestamp end
                )*2,
              3) AS processing_time
FROM activity
GROUP BY machine_id;
  • POINT 1 : -timestamp
    CASE WHEN문을 활용하여start일 경우-timestamp 이렇게 음수를 취해줌으로써 (end-start)의 값을 유도

  • POINT 2 : AVG(~)*2
    이 상태에서 average를 구하면 실제로는 n개의 task를 진행했는데도 데이터가 2n개이기 때문에 2n개로 나눠진 average 값이 나옴. 이를 원복해주기 위해 average 값에 2를 곱해줌

profile
광고 도메인과 콘텐츠 기획의 전문성을 갖춘 데이터 분석가입니다.

0개의 댓글