[해커랭크]SQL Project Planning

김준석·2024년 2월 2일

코딩테스트 - SQL

목록 보기
47/96

문제

https://www.hackerrank.com/challenges/sql-projects/problem?isFullScreen=true

풀이

SELECT 
    Start_Date,
    MIN(End_Date)
FROM (SELECT Start_Date
      FROM Projects
      WHERE Start_Date NOT IN (SELECT End_Date FROM Projects)) s,
     (SELECT End_Date
      FROM Projects
      WHERE End_Date NOT IN (SELECT Start_Date FROM Projects)) e
WHERE 1=1
    AND Start_Date<End_Date
GROUP BY
    Start_Date
ORDER BY
    DATEDIFF(MIN(End_Date),Start_Date)

후기

포인트!
1. End_Date 가 연속된 경우 동일한 프로젝트.
End_Date 의 가장 마지막 날과
End_Date 의 첫번째 날의 Start_Date 출력

WHERE 절에서 NOT IN 연산자 사용시 반드시 서브쿼리 사용!

0개의 댓글