강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

gjdxkrsml9049 のプロフィール画像
gjdxkrsml9049

投稿した質問数

[ソフデータ]例で学ぶ基礎SQL

Join 부분 질문있습니다!

作成

·

328

1

안녕하세요 sql 강의를 듣는 학생 1 입니다

join 강의 내용중에서

-#국가 도시별 구매자수 구해줘#-

select country, city, count(distinct orders.customerNumber)

from classicmodels.orders

left join classicmodels.customers

on orders.customerNumber = customers.customernumber

group by country, city;  에서 

위에 볼드 처리 된 부분에서 

select country, city, count(distinct orders.customerNumber)

->

select country, city, count(distinct customers.customerNumber)

로 하여도 같은 결과가 나오는데  customerNumber를 가져오는 것이기 때문에  orders와 customers 중 어느 것을 사용 해도 상관 없는 부분인가요??

sql

回答 1

2

sof님의 프로필 이미지
sof
インストラクター

안녕하세요!

네 맞습니다 

CUSTOMERNUMBER는 양쪽 테이블 공통으로 존재하기 때문에 

2개 테이블 중 하나를 선택하여 COUNT해주면 됩니다.

단 조심할 부분이 있는데요

만약 orders에는 존재하지만 customers에는 존재하지 않는 customernumber가 있다면

orders 테이블의 customernumber를 count해주는게 맞습니다.

우리가 구하고자 하는 것은 구매자 수이므로 orders에 존재하는 cusotmernumber를 count 해주는게

보다 적절해보입니다.

또 질문이 있으시면 말씀해주세요 :)

감사합니다.

gjdxkrsml9049 のプロフィール画像
gjdxkrsml9049

投稿した質問数

質問する