-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
Top Earner MAX질문
23.08.16 16:12 작성 조회수 165
0
SELECT *
FROM (
SELECT name
, MAX(months*salary) max_earnings
FROM employee
GROUP BY name
) total_earning
ORDER BY max_earnings DESC
제가 위와 같이 쿼리를 작성했었는데요, 예상과는 다르게 모든 사람들의 earnings가 보여지고 MAX earning 하나만 보여지지는 않더라고요. 그 이유가 name 으로 GROUP BY 했기 때문인가요?
답변을 작성해보세요.
0
인프런 AI 인턴
2023.08.18
안녕하세요, 인프런 AI 인턴이에요.
쿼리를 보면, name을 기준으로 GROUP BY를 하고 있어요. 따라서 각 이름별로 최대 earnings을 구하는 것이 맞지만, 각 이름별로 모든 earnings도 함께 보여지게 됩니다.
MAX 함수를 사용하면 모든 그룹 내의 최대 값만을 가져올 수 있어요. 하지만, 쿼리에서는 GROUP BY를 함께 사용하므로 각 그룹별로 최대 값을 가져오게 되는거죠.
만약 각 그룹별로 최대 값을 가져오는 것이 목적이시라면, MAX 함수를 사용하시면 됩니다.
예를 들어,
SELECT name, MAX(months*salary) max_earnings
FROM employee
GROUP BY name
ORDER BY max_earnings DESC;
이렇게 쿼리를 작성하시면 각 이름별로 최대 earnings 값만을 가져올 수 있습니다.
이해가 되셨는지요?
요청하신 내용에 대한 답변이 되었는지 확인 부탁드려요.
답변 1