• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

GROUP BY 질문

21.05.16 16:10 작성 조회수 135

1

GROUP BY 강의 제일 마지막 예문에서

질문을 좀 바꾸어 각각의 년도에서 가장 많은 홈런을 친 팀을 추출하려면 어떤 문법을 이용해야 하나요?

답변 1

답변을 작성해보세요.

2

다양한 방법으로 구할 수 있는데
나중에 나오는 Subquery, Join 등을 응용해서도 구할 수 있고
SQL은 아주 간단할 것 같지만,
조금만 요구사항을 바꾸면 의외로 까다로워지는 경우가 많습니다.
단일 쿼리로 만들기가 복잡하다면
임시 테이블을 만들면서 단계적으로 만드는 것도 괜찮은데
예를 들어 다음과 같은 스텝으로 만들 수 있습니다.

1)
단일 년도에 가장 많은 홈런을 날린 팀을 구하는 문제에서

SELECT teamID, yearID, SUM(HR) as homeRuns
FROM batting
GROUP BY teamID, yearID;

을 이용해 [년도/팀 별 총 홈런 개수]를 구한 상태입니다.

2)
1에서 구한 결과물을 임시 테이블에다 넣은 후,
다시 가공해서 [년도별 최고 팀 홈런 개수]를 구합니다.

SELECT yearID, MAX(homeRuns)
FROM Temp_Table
GROUP BY yearID;

3)
1, 2의 결과물을 Join해서 teamID, yearID, homeRuns를 구한다.

위는 하나의 예이고 다양한 방법이 존재할 수 있습니다.