인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

mmyungjjin님의 프로필 이미지
mmyungjjin

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

Self JOIN 리트코드 문제풀이2 + MySQL 날짜 데이터 더하고 빼기

rising temperature

작성

·

269

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

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

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

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

mmyungjjin님의 프로필 이미지
mmyungjjin

작성한 질문수

질문하기