홍동이의 성장일기

[LeetCode] 1084. Sales Analysis III 본문

Tool/SQL 코딩테스트 풀이

[LeetCode] 1084. Sales Analysis III

홍동2 2023. 8. 18. 10:56

 

Sales Analysis III - LeetCode

Can you solve this real interview question? Sales Analysis III - Table: Product +--------------+---------+ | Column Name | Type | +--------------+---------+ | product_id | int | | product_name | varchar | | unit_price | int | +--------------+---------+ pro

leetcode.com

SELECT s.product_id
      , p.product_name
FROM sales s LEFT JOIN product p
ON s.product_id = p.product_id
GROUP BY s.product_id
HAVING MIN(s.sale_date) BETWEEN '2019-01-01' AND '2019-03-31'
AND MAX(s.sale_date) BETWEEN '2019-01-01' AND '2019-03-31'

 

 

💡 개념정리

 

1. sales 테이블에 상품명을 함께 표시해주기 위해 LEFT JOIN을 해주고 필요한 column을 추출해준다.

 

2. GROUP BY를 해주고 각 상품의 최대, 최소 sales_date가 2019년 1분기에 있도록 HAVING 조건을 걸어준다.

 

 

solutions를 살펴보니 HAVING 조건을 이렇게도 줄 수 있었다.

HAVING MIN(s.sale_date) >= '2019-01-01'
AND MAX(s.sale_date) <= '2019-03-31'

📍본 내용은 데이터리안 'SQL 데이터 분석 캠프 실전반' 을 수강하며 작성한 내용입니다.

728x90
Comments