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를 생성해서 조인했다.
내가 생각하기론 위와 아래의 결과 차이가 없을텐데,
위에 코드는 자꾸 오답이라고 뜬다.
이유가 뭘까?