본문 바로가기

TIL 통합/SQL

[LEETCODE] PRODUCT SALES ANALYSIS 3 - WHERE 응용

1070. Product Sales Analysis III

 

어려운 문제는 아니었으나, 오랜만에 푸는 형식이라 WHERE을 활용하는 것이 생각 안 났어서 기록.

아래가 처음 풀었던 방식 

SELECT       PRODUCT_ID
            ,YEAR AS FIRST_YEAR
            ,QUANTITY
            ,PRICE
FROM        (
               SELECT       PRODUCT_ID
                            ,RANK() OVER (PARTITION BY PRODUCT_ID ORDER BY YEAR) AS RNK
                            ,YEAR
                            ,QUANTITY
                            ,PRICE
               FROM         SALES
            )  A
WHERE        RNK = 1

 

 

그리고 다음 것이 더 간단하게 푸는 방법.   WHERE 절에 IN을 넣을 때 칼럼을 두 개 설정할 수 있다는 사실이 가물가물해서 도저히 떠오르질 않았다(사실 예전에도 많아봐야 두세번만 사용해본 것 같기도).

앞으로는 이렇게 풀어야지. 

 

SELECT       PRODUCT_ID
            ,YEAR AS FIRST_YEAR
            ,QUANTITY
            ,PRICE
FROM         SALES
WHERE       (PRODUCT_ID, YEAR)  IN   (SELECT PRODUCT_ID, MIN(YEAR) FROM SALES GROUP BY 1)