
문제
- 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 한 후, 필요한 정보들을 출력해준다.
🌟 특정 값이 최대/최소를 가질 때, 그 때의 다른 컬럼들의 값을 출력하는 전형적인 문제!~
