강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

민서 강님의 프로필 이미지
민서 강

작성한 질문수

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

2-6. 연습 문제 10~12번

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

해결된 질문

작성

·

45

0

안녕하세요! 11번 문제에서 GROUP BY를 필수로 사용해야 하는 이유가 궁금합니다.
11번 : pokemon 테이블 중 type2가 있으면서 가장 많은 수의 type1이 무엇인지에 대한 문제입니다.

저 같은 경우 GROUP BY를 빼고
SELECT type1
FROM pokemon.basic
WHERE type2 IS NOT NULL
ORDER BY type1 DESC
LIMIT 1;

이렇게 쿼리를 짰는데, 답은 똑같이 나와서,
GROUP BY를 사용하신 이유, 이 문제에서 GROUP BY를 사용해야 하는 이유가 궁금합니다.

답변 1

1

카일스쿨님의 프로필 이미지
카일스쿨
지식공유자

안녕하세요. 민서님이 푸신 쿼리를 해석하면,

  • type2가 NULL이 아닌 포켓몬 중에 type1의 이름을 내림차순(즉, Z가 처음에 나오도록, A가 마지막에 나오도록)한 후, 1개만 출력해달라는 것입니다

  • 제가 문제에서 냈던 것은 가장 많은 수의 type1이 무엇인지를 구해달라고 한 것입니다

    • 즉, type1이 제일 많은 것을 구한 후에 그 기준으로 정렬을 해줘야 합니다

    • 지금 문제에서는 우연히 Water 타입이 type1 기준으로 내림차순일 때 처음 값(W로 시작하므로)이고 수도 많아서 우연히 답이 맞은 케이스입니다

    • 문제에서는 "가장 많은 수"의 type1을 달라고 한 것이고, 민서님의 ORDER BY type1은 type1을 단순히 정렬한 것입니다(많다는 것이 아니라 A-Z 기준으로 정렬)

민서 강님의 프로필 이미지
민서 강
질문자

감사합니다!!

민서 강님의 프로필 이미지
민서 강

작성한 질문수

질문하기