문제
- LeetCode SQL 문제
1070. Product Sales Analysis III / Medium
- 문제 내용 : [링크]
내가 작성한 Query
with temp_01 as( select s.product_id , min(s.year) as first_year from sales s join product p on s.product_id = p.product_id group by s.product_id ) select t.*, s.quantity, s.price from temp_01 t join sales s on t.product_id = s.product_id and t.first_year = s.year
판매데이터 테이블sales
와 제품데이터 테이블product
를 JOIN
해 준다.
이 때, 판매 제품에 대한 데이터만 출력하므로 INNER JOIN
한다.
제품별 상품 판매 최초 연도의 정보들을 출력해야 하므로, GROUP BY
를 통해 product_id
로 그룹핑해준다.
min(year) as first_year
최소값 집계함수를 통해 제품이 판매된 최초연도를 출력해준다.
product_id
와 최소 연도 데이터를 출력한 테이블을 temp_01
으로 출력
이후, temp_01
과 sales
테이블을 product_id
와 year
기준으로 JOIN
한 후, 필요한 정보들을 출력해준다.
🌟 특정 값이 최대/최소를 가질 때, 그 때의 다른 컬럼들의 값을 출력하는 전형적인 문제!~