
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')
);
AI로 그림만드는거 제가 특허냈어요