02/21 SQL 문제풀이 - 1070. Product Sales Analysis III (Leetcode)

Data Architect / Engineer·2024년 2월 21일
1

1일_1SQL

목록 보기
36/63
post-thumbnail

문제

  • 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와 제품데이터 테이블productJOIN 해 준다.
    이 때, 판매 제품에 대한 데이터만 출력하므로 INNER JOIN 한다.

  • 제품별 상품 판매 최초 연도의 정보들을 출력해야 하므로, GROUP BY를 통해 product_id로 그룹핑해준다.

  • min(year) as first_year 최소값 집계함수를 통해 제품이 판매된 최초연도를 출력해준다.

  • product_id와 최소 연도 데이터를 출력한 테이블을 temp_01으로 출력

  • 이후, temp_01sales 테이블을 product_idyear 기준으로 JOIN 한 후, 필요한 정보들을 출력해준다.

  • 🌟 특정 값이 최대/최소를 가질 때, 그 때의 다른 컬럼들의 값을 출력하는 전형적인 문제!~

profile
질문은 계속돼 아오에

0개의 댓글