SQL 코드카타

197. Rising Temperature

여연찌 2024. 5. 2. 09:43
  • Write a solution to find all dates' Id with higher temperatures compared to its previous dates (yesterday).
    Return the result table in any order.
    The result format is in the following example.
SELECT w1.id
FROM weather AS w1
JOIN weather AS w2
ON DATEDIFF(w1.recordDate, w2.recordDate) = 1 
WHERE w1.temperature > w2.temperature

FROM weather AS w1 JOIN weather AS w2

# 1개의 테이블을 JOIN 해준다.

 

ON DATEDIFF(w1.recordDate, w2.recordDate) = 1

# 테이블1 의 날짜컬럼에서 테이블2의 날짜컬럼을 뺀 값이 1일 때 JOIN

 

WHERE w1.temperature > w2.temperature

# 테이블1 의 온도가 테이블2의 온도보다 높을 경우 

 

 

 


 

SELECT w1.id
FROM weather w1, weather w2
WHERE datediff(w1.recorddate,w2.recorddate) = 1 AND w1.temperature > w2.temperature

테이블을 CROSS JOIN 으로 만들어준 다음

조건을 주는 방법도 있다

 

* 복사가 되기 때문에 where 절에서 null 이 나오게 되면 문제가 될 수 있다.

* 처리 속도를 빠르게 하고 싶을 때 가끔 사용하지만 권장하지 않는다.

 

참고

https://leetcode.com/problems/rising-temperature/description/