알고리즘
[SQL]LeetCode sales analysis III
truezero
2024. 1. 21. 19:23
✅ 코드
SELECT product_id
, product_name
FROM Product
WHERE product_id NOT IN (
SELECT product_id
FROM Sales
WHERE sale_date NOT BETWEEN '2019-01-01 00:00:00' AND '2019-03-31 23:59:59'
) AND product_id IN (SELECT DISTINCT product_id FROM Sales)
첫 번째 풀이입니다.
다중행 서브쿼리를 사용한 풀이입니다.
WHERE문에 조건을 2개 설정했는데 다소 복잡해보이는 감이 있습니다.
SELECT P.product_id AS product_id
, P.product_name as product_name
FROM Product AS P
INNER JOIN Sales AS S ON P.product_id = S.product_id
GROUP BY product_id
HAVING MIN(S.sale_date) >= '2019-01-01 00:00:00'
AND MAX(S.sale_Date) <= '2019-03-31 23:59:59'
두 번째 풀이입니다.
GROUP BY와 HAVING문을 사용했습니다.
이전 풀이에 비해 가독성이 높아졌습니다.
HAVING문의 MIN/MAX 함수는 2019년 1분기에 구매한 품목들만 필터링하기 위해 사용했습니다.