inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2-6. 연습 문제 13~17번

2-6.연습문제 17번

해결된 질문

117

wasd7595

작성한 질문수 2

0

안녕하세요. 열혈 수강자 이지수입니다 : )

문제가 하나씩 풀리니 넘 재밌고 뿌듯합니다 ㅎㅎ

17번 문제에서

풀어준 포켓몬 수를 B
전체 포켓몬 수를 A로 두었는데요

COUNT IF B/A 이런식으로 축약해서 연산할 수는 없나요?

감사합니다.

SELECT trainer_id, 

COUNTIF(status="Released") as B , #풀어준 포켓몬의 수

COUNT(pokemon_id) as A, #전체 포켓몬의 수 

COUNTIF(status="Released")/COUNT(pokemon_id) as released_ratio 

FROM basic.trainer_pokemon 

GROUP BY trainer_id 

HAVING released_ratio >=0.2

sql bigquery 데이터-리터러시

답변 1

0

카일스쿨

안녕하세요. 열혈 수강자라니 기쁘네요! 계속 강의 잘 수강해보셔요!

 

질문이 약간 헷갈리는데 제가 이해한게 맞을까요?

 

SELECT 
  trainer_id, 
  COUNTIF(status="Released") as B , #풀어준 포켓몬의 수
  COUNT(pokemon_id) as A, #전체 포켓몬의 수 
  B/A as released_ratio 
FROM basic.trainer_pokemon 
GROUP BY trainer_id 
HAVING released_ratio >=0.2

이렇게 실행하고 싶다는 의미일까요?

"COUNT IF B/A 이런식으로" 라는 표현이 구체적이지 않아서 헷갈리네요

 

실행을 해보시면, 실행이 안될거에요. 쿼리는 SELECT문이 마지막에 실행되는데, 실행하는 시점에 A와 B가 무엇인지 모릅니다. 그래서 서브쿼리로 감싸서 실행을 해야합니다. SELECT의 별칭은 그 안에 있는 쿼리에선 사용할 수 없습니다

SQL 실행 순서 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

SELECT에서 사용한 별칭은 ORDER BY에서만 사용이 가능하고, 그 외에 사용하고 싶다면 아래처럼 서브쿼리로 감싸서 실행해야 합니다.

 

SELECT
  trainer_id,
  B/A as released_ratio 
FROM (
  SELECT 
    trainer_id, 
    COUNTIF(status="Released") as B , #풀어준 포켓몬의 수
    COUNT(pokemon_id) as A, #전체 포켓몬의 수 
  FROM basic.trainer_pokemon 
)
GROUP BY trainer_id 
HAVING released_ratio >=0.2

 

이렇게는 실행이 됩니다.

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