inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2-5. 집계(GROUP BY + HAVING + SUM/COUNT)

2-5 집계 23:42 GROUP BY 연습문제 질문 드려요

해결된 질문

120

전성배

작성한 질문수 6

0

포켓몬의 수를 타입 별 집계, 수가 10 이상인 타입만 남기는 쿼리 작성 연습문제에 대하여 질문 드려요.

 

작성 전에 고민했던 부분은

  1. 포켓몬 타입은 type 1, 2로 나뉘어 있다.

  2. type 2는 null 인 경우가 있다. => where 로 제외할 수 있을까?

  3. type 1, 2 을 포함해서 세야 할 것 같다. (총 포켓몬 수보다 합산 값이 클 수 있다)

였거든요.

Group by 에서 type2를 빼면 통합되지 않았다는 오류가 발생해서 어쩔 수 없이 넣긴 했는데, 제가 원한 형태로 구현되지는 않았습니다. 어떻게 해야 null 을 제외한 type2 의 값까지 전부 셀 수 있을까요?

WHERE TYPE2 IS NOT NULL 을 넣게 되면 1개 타입만 가진 개체의 경우 아예 집계를 하지 않는 것 같아서 그 부분도 뺄 수 밖에 없었어요.

최종적으로는 1열에 타입, 2열에 해당하는 개체 수가 나오게 구현하고 싶습니다.

(바위, 불인 포켓몬의 경우 바위에 1개, 불에 1개 계산되도록이요.

바위, 불 포켓몬 + 바위 포켓몬 + 불 포켓몬 = 바위 2개체 불 2개체)

SELECT
  type1,
  type2,
  COUNT(id) as cnt
FROM `basic.pokemon`
GROUP BY 
  type1, type2

sql bigquery 데이터-리터러시

답변 1

1

카일스쿨

안녕하세요.

 

name type1 type2
리자드 불꽃
리자몽 불꽃 비행

만약 이렇게 데이터가 저장되어 있다고 가정할 때,

데이터를 아래와 같이 수정해야 성배님이 원하시는 방식으로 COUNT가 가능합니다

 

name type_new
리자드 불꽃
리자몽 불꽃
리자몽 비행

 

이렇게 하려면 UNION ALL을 사용해서 할 수 있습니다

WITH base AS (
  SELECT 
    name, 
    type1 AS type_new
  FROM basic.pokemon
  UNION ALL 
  SELECT 
    name, 
    type2 AS type_new
  FROM basic.pokemon
)
SELECT
  *
FROM base

이렇게 하시면 원하는 값을 구할 수 있을거에요.

이후 battle 관련 문제에서 비슷하게 문제를 푼답니다

vs code

0

48

2

수업자료 다운

0

46

2

쿼리 화면 문의

0

70

2

4-5. 3번 문제 질

0

64

2

JOIN 1번 문제

1

73

2

battle 테이블 생성 시 생성 오류

0

68

1

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

0

64

2

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

1

68

2

battle table 오류

0

68

2

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

0

61

2

12강 집계 함수

0

48

1

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

0

49

1

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

0

49

1

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

0

65

1

섹션 별 퀴즈

0

64

1

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

0

102

2

Syntax에러

0

81

2

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

0

87

2

시각화 도구 사용

0

109

2

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

0

98

1

big query 쿼리 결과 컬럼 폭

0

107

3

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

0

128

1

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

0

78

2

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

0

113

2