• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

rising temperature

22.08.20 03:39 작성 조회수 195

0

날짜 계산할 때 -1, +1 같은건 절대 안된다고 하셨는데
실제로 이렇게 써도 제출 전에는 맞다고 나오는데요!
혹시 이건 왜그럴까요?
 
select today.id
from weather as today
     inner join weather as yesterday on today.recorddate - 1 =. yesterday.recorddate
where today.temperature > yesterday.temperature

 

답변 1

답변을 작성해보세요.

1

image
위에 첨부한 스크린샷의 output 첫 번째 row를 보시면
2015-01-01의 하루 전 날짜는 2014-12-31인데, recorddate - 1 로 연산했을 경우 20150100으로 출력되는 것을 알 수 있습니다.

문제에서 주어진 데이터로 풀 때는 정답에 이런 값이 들어가지 않으므로 Run Code 했을 때 문제가 없었을 텐데요.
제출 후 채점을 할 때는 시스템이 이 쿼리를 여러 개의 test case에 대입해 보고 모든 케이스를 통과해야만 정답으로 처리를 합니다.
연도(year), 월(month)의 첫 날 또는 마지막 날의 날짜가 포함된 케이스가 있을 것이고, -1과 +1로 연산하면 이런 경우에 오답 처리가 됩니다.