출처
문제
판매된 모든 제품의 첫 해에 대한 제품 ID, 연도, 수량 및 가격을 선택하는 솔루션을 작성합니다.
결과 테이블을 순서에 관계없이 반환합니다.
문제에 대한 해석
![]() |
![]() |
제품(product_id)에 따라 판매된 최초의 연도와 해당 연도에 따른 수량과 가격을 조회하는 것
풀이(MYSQL)
-- 정답
select a.product_id, b.first_year, quantity, price
from Sales a
join (select product_id, min(year) as'first_year' from Sales group by product_id) b
on a.product_id = b.product_id
and a.year = b.first_year
서브쿼리로 product_id에 따른 최초의 연도를 조회하여
해당 아이디와 연도에 맞는 수량과 가격을 inner join을 통해 조회
-- 정답2
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 product_id)
동일한 서브쿼리를 조인하지 않고 where절에 사용하는 경우
-- 오답
select product_id, min(year) as'first_year' , quantity, price
from Sales
group by product_id
서브쿼리를 하지 않고 그룹화하여 수량과 가격을 조회할 경우
해당 연도에 맞지 않는 데이터를 불러오게 된다
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] Leet code - Market Analysis I (0) | 2024.08.02 |
---|---|
[문제풀이] Leet code - Sales Analysis III (0) | 2024.08.01 |
[문제풀이] Leet code - Customers Who Bought All Products (0) | 2024.07.31 |
[문제풀이] Leet code - Exchange Seats (0) | 2024.07.31 |
[문제풀이] Leet code - Friend Requests II: Who Has the Most Friends (0) | 2024.07.24 |