What a Beautiful Data!

[Hackerank] Top earners , 서브쿼리를 써야만하나요 mysql

by darami

[Hackerrank] Top earners

 

Q:

제가 문제를 먼저 풀어 보았을 때 아래와 같은 방식으로 풀이를 했는데요.

서브쿼리를 써서 풀면 성능이 더 좋은가요? 어떤 점이 더 좋은지 궁금합니다.

 

A: 

 

안녕하세요, 답변 드립니다.

문의주신 내용의 경우 성능보다는 추출 정확도와 관련이 있습니다.
이 문제처럼 months*salary의 최댓값이 1개이기 때문에 LIMIT 1을 써서 추출해도 됩니다. 하지만 1위가 여러 개인 경우에는 LIMIT 사용 시 정확히 추출이 되지 않기 때문에 서브쿼리와 같이 다른 방식을 사용해야 합니다.

예시 - 상품 카테고리 별 주문 수
(주문 수가 가장 많은 카테고리를 추출할 경우 A,B 가 모두 출력되어야 하지만 LIMIT 1을 사용할 경우 A또는 B 만 출력.)

카테고리   주문 수
      A           1,000
      B           1,000
      C             500

 

출처: [백문이 불여일타] - 인프런 SQL 고급 강의 중 본인의 질의 응답 내용

블로그의 정보

다람

darami

활동하기