• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

해커랭크 Top Earners 관련 질문 드립니다

20.09.10 13:59 작성 조회수 91

0

안녕하세요:)

해커랭크 Top Earners 관련 질문 드립니다!

-문제: 해커랭크 Top Earners

-질문: 아래쿼리에서 왜 에러가 나는지, MAX와 관련이 있는건지 궁금합니다.

-오답:

SELECT employee_id,
       name,
       MAX(months * salary) AS total_earnings
FROM employee

정답은 강의를 통해 알고 있는데, 위 쿼리에서 어떤 부분이 문제인지 궁금합니다ㅎㅎ

감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요 박유빈님

MYSQL에서 COUNT, SUM, MIN, MAX, AVG와 같은 aggregation function은 용법이 2가지 입니다.

  1. 전체 데이터의 요약값을 확인할 경우
    ex) SELECT COUNT(*) FROM ...
  2. GROUP BY와 함께 사용하는 경우
    ex) SELECT column, COUNT(id) FROM ... GROUP BY column ...

즉, 위와 같은 aggregation function은 데이터의 요약 값을 구하기 위해 동작하는 함수이므로 어떤 범위 내에서 요약을 해줄 것인지 그 기준이 되는 범위가 반드시 필요합니다. 그 범위는 전체이거나 쿼리 작성자가 GROUP BY에 기입해주는 값이 되며, 해당 기준 범위의 데이터 내에서 요약된 값이 추출되게 됩니다.

따라서 전달주신 코드는 그 자체로 MAX() 함수의 용법에 맞지 않아 구동되지 않게 됩니다.

또 궁금한 점 있으시면 답글 납겨주세요 :)