LEETCODE - Sales Analysis 3 코드 질문드립니다.
안녕하세요, 젬마님 강의 잘 듣고 있는 수강생입니다. 혹시 수업에서 다루지 않은 leetcode 문제도 질문 받아주실지 잘 모르겠지만 한 번 올려 봅니다...!
Sales Analysis 3 문제의 답을 아래와 같이 적었는데 계속 오류가 납니다. 답변 주시면 감사하겠습니다.
SELECT P.PRODUCT_ID, P.PRODUCT_NAME
FROM PRODUCT P
INNER JOIN (
SELECT *
FROM SALES
WHERE PRODUCT_ID NOT IN (
SELECT PRODUCT_ID
FROM SALES
WHERE SALE_DATE < '2019-01-01'
OR SALE_DATE > '2019-03-31'
)
) N
ON P.PRODUCT_ID = N.PRODUCT_ID;
Answer 1
0
안녕하세요 zuuzuubin 님
꼭 제 강의 아니더라도 SQL 문제 질문은 늘 환영입니다!:)
아래 풀이 보시고 이해 안가시면 재질문 부탁드립니다.
문제: https://leetcode.com/problems/sales-analysis-iii/description/
풀이에서 DISTINCT 하나만 놓치신거였네요!
Sales 테이블에 ‘This table can have duplicate rows’ 이렇게 써있는데요.
그래서 Sales 테이블에 동일한 product_id가 여러 개 포함될 수 있습니다.
풀이1:
동일한 product_id가 여러 개 있는 Sales 테이블과 Product 테이블이 inner join 하면서, 최종 결과물에 중복된 product_id가 존재할 것입니다. 그래서 최종 바깥쪽 select문에 DISTINCT를 추가하셔도 됩니다.
SELECT DISTINCT P.PRODUCT_ID,
P.PRODUCT_NAME
FROM PRODUCT P
INNER JOIN (
SELECT *
FROM SALES
WHERE PRODUCT_ID NOT IN (
SELECT PRODUCT_ID
FROM SALES
WHERE SALE_DATE < '2019-01-01'
OR SALE_DATE > '2019-03-31'
)
) N
ON P.PRODUCT_ID = N.PRODUCT_ID;
풀이2:
join하는 temp 테이블에서 product_id가 하나만 나오게끔, 미리 DISTINCT product_id를 처리해주셔도 됩니다. 그러면 join을 하더라도 product_id는 최종 결과물에서 하나씩만 나올 것입니다.
SELECT P.PRODUCT_ID,
P.PRODUCT_NAME
FROM PRODUCT P
INNER JOIN (
SELECT DISTINCT PRODUCT_ID
FROM SALES
WHERE PRODUCT_ID NOT IN (
SELECT PRODUCT_ID
FROM SALES
WHERE SALE_DATE < '2019-01-01'
OR SALE_DATE > '2019-03-31'
)
) N
ON P.PRODUCT_ID = N.PRODUCT_ID;
수강평 이벤트
0
16
2
패키지 구분에 대해 궁금한게 있습니다
0
8
1
진행 방법 질문드립니다!
0
26
2
노션 링크도 안 열리고, 알려준 vercel도 실행이 안됩니다.
0
10
1
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
19
1
스프링부트 서버 에러나요
0
17
1
코드를 첨부해야하는 이유가 있나요?
0
20
2
갑자기 채점 사이트가 바뀌었어요
0
19
1
간단한 오타 제보입니다.
0
19
1
문제 리스트 페이지
0
22
1
문제 링크 변경
0
55
2
SQL 파일 다운로드
0
62
2
workbench 테이블 생성
0
274
2
sql 코딩 테스트에서 index 생성 가능 여부
1
282
2
cross join, full join강의 / leetcode 1280번 문제 질문드립니다
1
300
1
not In강의 / leetcode 1978 질문 드립니다
2
198
1
[The Latest Login in 2020] datetime 계산 관련
1
249
1
[Average Selling Price] 문제 테스트케이스 실패
1
281
3
서브쿼리 질문
1
349
1
EASY INNER JOIN 관련 average-selling-price 연습문제
1
282
1
INNER JOIN 강의 질문
1
326
2
문제 주소 링크
1
297
2
work bench 설치관련 문의
1
280
2
깃헙 데스크탑, MYSQL 워크벤치 연동
2
859
3

