♟️ 알고리즘/Leetcode

[MySQL][Leet Code] 197. Rising Temperature (Easy)

Jerry_K 2025. 2. 17. 21:27

https://leetcode.com/problems/rising-temperature/description/?envType=study-plan-v2&envId=top-sql-50

 


🗒️SQL 코드 풀이 

SELECT id
FROM Weather W1
    INNER JOIN
    (
        SELECT DATE_ADD(recordDate, INTERVAL 1 DAY) recordDate2, temperature
        FROM Weather 
    ) W2
    ON W1.recordDate = W2.recordDate2
WHERE W1.temperature - W2.temperature > 0

 

1. 문제에서 요구하는 것은 간단하다. 전날과 비교해서 기온이 떨어지는 id를 출력하는 것이다.

 

2. 하지만 SQL에서 해당 문제를 풀려면 생각보다 복잡해진다. 

 

3. 우선 DATE_ADD 함수에 INTERVAL 1을 준 테이블을 기존 테이블과 INNER JOIN 한다 

 

4. 이후 기존 테이블의 temperature (현재) - temperature (과거) > 0 인 조건을 설정한다.

 

 

📌 문제 코멘트 

문제 자체에서 요구하는게 간단해서 쉬울 줄 알았다 ...

파이썬 이런 언어와 다르게, SQL에서 이렇게 간단한 요구도 수행하기 어려웠다.

 

이번 챕터에서 기억해야하는 것은 아래와 같다.

DATE_ADD( "컬럼", INTERVAL N DAY) 
INNER JOIN

 

그리고 앞으로 SQL 작성의 가독성을 높히기 위해,

인강에 나오는 것 처럼 들여쓰기를 해봐야겠다. 


📚문제