inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

SQL 코딩테스트를 위한 첫 걸음

inner join, left join

EASY INNER JOIN 관련 average-selling-price 연습문제

해결된 질문

282

합격가자

작성한 질문수 23

1

선생님 이 문제에 대해서

 

and p.start_date <= u.purchase_date

and u.purchase_date <= p.end_date

이 부분을 왜 조건을 달아줘야 하는지 궁금합니다.

따로 문제에 명시되지 않은거같은데.. 확인부탁드립니다!

 

select p.product_id ,

round(sum(u.units*p.price)/sum(u.units), 2) average_price

from Prices p

inner join

UnitsSold u

on p.product_id=u.product_id

and p.start_date <= u.purchase_date

and u.purchase_date <= p.end_date

group by p.product_id;

sql mysql 코딩-테스트

답변 1

0

Gemma

합격가자님, 안녕하세요.

숙제도 열심히 풀고 계시군요! 빠른 속도로 실력이 향상하실 듯하네요:)

혹시 아래 설명 보고 이해 안가시면, 편하게 추가 질문 부탁드립니다~


Prices 테이블의 price 컬럼, UnitsSold테이블의 unit 컬럼을 이용하기 때문에, 두 테이블을 이어줘야합니다. 그래서 공통적으로 들어있는 product_id 컬럼으로 이어줄 것입니다.

 

  1. 먼저 product_id 컬럼으로만 이어준 결과를 확인해봅시다.


    첫번째 행 purchase_date='2019-02-25' 주문에 대해서, start_date='2019-03-01'와 end_date='2019-03-22' 사이에 들어있지 않으므로, 해당 row는 제외되어야 합니다.

image

  1. 그래서 purchase_date가 start_date와 end_date 사이에 있는 row만 사용하기 위해서 아래와 같은 조건이 필요합니다.

and p.start_date <= u.purchase_date

and u.purchase_date <= p.end_date

  1. 현재 강의 버전처럼 이 조건을 ON에 추가해도 되구요. (하나는 p 테이블, 하나는 u 테이블에 있으니까 조인 조건이라고 볼 수 있습니다) 이게 헷갈린다면 WHERE 조건에 추가해도 됩니다.

# [MYSQL1 - WHERE에 purchase_date 조건 추가]

select p.product_id,

round(sum(u.units*p.price)/sum(u.units), 2) average_price 

from Prices p

inner join UnitsSold u

on p.product_id=u.product_id

where p.start_date <= u.purchase_date

and u.purchase_date <= p.end_date

group by p.product_id;

 

 

실습 권한이 없네요··· 이건 ··· 좀··· 401 에러떠요

0

1

1

백준 사이트 서버종료

0

4

0

살구 클럽에 대한 질문있습ㄴ디ㅏ

0

18

1

[할인쿠폰] 코테의 바이블[JAVA] 50% 할인 쿠폰 관련

0

7

1

GROUP BY 시 인덱스를 타지 않는 이유가 궁금합니다

0

14

1

FOREIGN KEY 정리하기, 영상대로 SQL코드 복붙해도 안되요.

0

18

1

모델 서빙과 관련된 강좌 출시 예정된 바가 있으신지 여쭤봅니다!

0

22

2

Vercel 실행이 안됩니다

0

16

1

교안 158페이지 문의드립니다

0

28

2

코딩살구클럽 관련 건의사항

0

67

1

문제 링크 변경

0

56

2

SQL 파일 다운로드

0

63

2

workbench 테이블 생성

0

275

2

sql 코딩 테스트에서 index 생성 가능 여부

1

282

2

cross join, full join강의 / leetcode 1280번 문제 질문드립니다

1

301

1

not In강의 / leetcode 1978 질문 드립니다

2

198

1

LEETCODE - Sales Analysis 3 코드 질문드립니다.

1

279

1

[The Latest Login in 2020] datetime 계산 관련

1

249

1

[Average Selling Price] 문제 테스트케이스 실패

1

281

3

서브쿼리 질문

1

349

1

INNER JOIN 강의 질문

1

327

2

문제 주소 링크

1

299

2

work bench 설치관련 문의

1

280

2

깃헙 데스크탑, MYSQL 워크벤치 연동

2

859

3