해결된 질문
작성
·
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 기준으로 정렬)
감사합니다!!