[LeetCode/Sql] Rising Temperature

less than 1 minute read

문제정보

어떻게 풀까?

전날보다 높은 온도를 가진 날의 ID를 출력한다. ORACLE SQL과 MYSQL SQL가 다르다.

ORACLE SQL은 DATE에 + 1을 하면 다음날로 비교할 수 있지만 MYSQL은 TO_DAYS()로 비교하거나 DATE_ADD()를 사용해야 한다.

문제풀이 (ORACLE)

SELECT W1.ID AS ID
FROM WEATHER W1, WEATHER W2
WHERE W1.RECORDDATE = W2.RECORDDATE + 1
AND W1.TEMPERATURE > W2.TEMPERATURE;

문제풀이 (MySQL - TO_DAYS() 사용)

SELECT W1.ID AS ID
FROM WEATHER W1, WEATHER W2
WHERE TO_DAYS(W1.RECORDDATE) = TO_DAYS(W2.RECORDDATE) + 1
AND W1.TEMPERATURE > W2.TEMPERATURE;

문제풀이 (MySQL - DATE_ADD() 사용)

SELECT W1.ID AS ID
FROM WEATHER W1, WEATHER W2
WHERE W1.RECORDDATE = DATE_ADD(W2.RECORDDATE, INTERVAL 1 DAY)
AND W1.TEMPERATURE > W2.TEMPERATURE;

Leave a comment