Leetcode SQL50 (1164)

Pocketopi·2025년 4월 16일

[MYSQL] Leetcode

목록 보기
10/34
post-thumbnail

🔔 문제

LeetCode - Product Price at a Given Date
➔ 2019-08-16일의 모든 상품 가격을 구하라.
단, 해당 날짜 전에 가격 변경 이력이 없는 상품의 경우 초기 가격은 10으로 간주한다.

🎯 풀이방법

🔑 핵심

첫번째 메인 쿼리에서는 2019-08-16에 존재하는 상품들의 가격을 출력하고,
두번째 메인 쿼리에서는 그 이후에 추가된 상품들의 초기 가격(10)을 출력한다.

💻 전체 코드

SELECT PRODUCT_ID, NEW_PRICE AS PRICE
FROM PRODUCTS
WHERE (PRODUCT_ID, CHANGE_DATE) IN (SELECT PRODUCT_ID, MAX(CHANGE_DATE) 
                                    FROM PRODUCTS
                                    WHERE CHANGE_DATE <= '2019-08-16'
                                    GROUP BY PRODUCT_ID)

UNION

SELECT PRODUCT_ID, 10 AS PRICE
FROM PRODUCTS
WHERE (PRODUCT_ID, CHANGE_DATE) IN (SELECT PRODUCT_ID, MIN(CHANGE_DATE) 
                                    FROM PRODUCTS
                                    GROUP BY PRODUCT_ID
                                    HAVING MIN(CHANGE_DATE) > '2019-08-16')

);

💡 핵심 문법 및 배운 점

  • 다중컬럼비교 : WHERE (A,B) IN ...
  • UNION : 행을 합침
profile
통계학/컴퓨터공학 전공 4학년 학생 DA뿌수기 일기장

2개의 댓글

comment-user-thumbnail
2025년 4월 16일

AI로 그림만드는거 제가 특허냈어요

1개의 답글