본문 바로가기

카테고리 없음

[Mysql] HackerRank - SQL Project Planning

SQL Project Planning 문제를 풀었는데 

내가 작성한 답이 자꾸 오답이라고 뜬다.

 

내가 작성한 코드: 

select a.start_date, b.end_date
from (select start_date, @rownum := @rownum+1 as row1
      from projects , (select @rownum := 0) tmp
      where start_date not in (select end_date from projects) )a
join ( select end_date, @rownum := @rownum+1 as row2
      from projects, (select @rownum := 0) tmp
      where end_date not in (select start_date from projects))b
on a.row1 = b.row2
order by datediff(b.end_date, a.start_date), a.start_date

 

 

정답 코드:

select a.start_date, min(b.end_date)
from (select start_date
      from projects
      where start_date not in (select end_date from projects) )a
join ( select end_date
      from projects
      where end_date not in (select start_date from projects))b
on a.start_date < b.end_date
group by a.start_date
order by datediff(min(b.end_date), a.start_date), a.start_date

 

 

정답코드와 다른건 join 방식 뿐.

나는 row number를 생성해서 조인했다.

 

내가 생각하기론 위와 아래의 결과 차이가 없을텐데,

위에 코드는 자꾸 오답이라고 뜬다.

 

이유가 뭘까?