inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

초보자를 위한 BigQuery(SQL) 입문

총 정리 문제 풀이 1~3번

섹션 8 문제 풀이 1번 질문 있습니다!

해결된 질문

114

레스

작성한 질문수 17

0

안녕하세요 카일님, 질문이 있습니다!

trainer_pokemon 테이블에서 '트레이너가 보유한 포켓몬의 수'를 구하실 때

'포켓몬 수'를 COUNT(pokemon_id)가 아닌, COUNT(id)를 사용한 이유를 구체적으로 알 수 있을까요..?

아직 각 테이블 내에 있는 id에 대한 개념이 잘 안 잡혀서 질문 드립니다 ㅠ..

 

sql bigquery 데이터-리터러시

답변 1

0

카일스쿨

레스님 안녕하세요!

트레이너가 보유한 포켓몬의 수를 알기 위해 id를 사용했어요. COUNT(pokemon_id)로 해도 동일한 결과가 나옥니 합니다.

그런데도 왜 id를 사용했냐면, trainer_pokemon 테이블이 "보유한" 포켓몬이기 때문이에요. pokemon 테이블은 포켓몬들의 메타 정보입니다. 그래서 pokemon_id를 COUNT하면 중복이 존재할거에요. 예를 들어 피카츄를 잡은 사람들이 많다면 피카츄 id인 25가 많이 있겠지요. 우리가 원하는 것은 "보유한" 포켓몬의 수기 때문에 trainer_pokemon을 사용했어요.

trainer_pokemon : 트레이너가 보유한 포켓몬을 알려주는 테이블 하나의 Row = 한 트레이너가 보유한 포켓몬의 수

 

정리하면

  • 지금 문제에선 COUNT(pokemon_id)를 해도 동일한 결과가 나올 것

    • 다만 pokemon_id엔 중복이 존재할 것(여러 포켓몬이 잡힐 수 있기 때문)

  • 문제에서 원하는 것은 "포켓몬"이 아닌 "트레이너가 보유한 포켓몬"이기 때문에 이걸 나타내는 trainer_pokemon의 id를 선정했어요

 

궁금한 것이 있으면 또 남겨주셔요~!

0

레스

아하.. 감사합니다!

 

덕분에 SQL 공부 잘 하고 있습니다. 좋은 강의 개설해 주셔서 감사합니다~

vs code

0

51

2

수업자료 다운

0

49

2

쿼리 화면 문의

0

72

2

4-5. 3번 문제 질

0

66

2

JOIN 1번 문제

1

76

2

battle 테이블 생성 시 생성 오류

0

69

1

5-6. 4번 문제 WHERE 조건의 위치 문의

0

65

2

5-6. 연습문제 4번, type2에 대해서는 고려하지 않아도 될까요?

1

71

2

battle table 오류

0

69

2

location IS NOT NULL 을 굳이 안 써도 되지 않나요?

0

62

2

12강 집계 함수

0

49

1

2-6. 연습 문제 1~3번

0

50

1

안녕하세요! 11번 문제 query문에 관해 질문드립니다

0

51

1

2-6 #2 WHERE vs. HAVING절 사용 여부 차이

0

67

1

섹션 별 퀴즈

0

67

1

espanso 설치 완료 후 프로그램 실행 문제

0

104

2

Syntax에러

0

83

2

4-5. 1번 문제 TIMESTAMP 관련 질문

0

89

2

시각화 도구 사용

0

110

2

11번 문제 GROUP BY 사용하는 이유

0

99

1

big query 쿼리 결과 컬럼 폭

0

108

3

battle 스키마 조건 복사 파일이 열리지 않아요.

0

130

1

6-5 데이터 검증 결과 예시문제

0

79

2

battle 스키마 조건 복사붙여넣기용 자료

0

115

2