• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

해커랭크 Top Earners 코드 문의

20.08.17 17:13 작성 조회수 168

1

안녕하세요?

해커랭크 문제 중 Top Earners의 코딩 관련 궁금증이 생겨서 문의 드립니다.

저는 해당 문제 를 하기와 같이 쿼리를 짜서 풀었고, Submit했을 때 Accept되었습니다.

그러나 선미님께서는 ORDER BY 구문으로 내림차순을 다시 한번 엮어주셨는데, 꼭 ORDER BY로 묶어줘야 하는 이유가 있을 까요?

GROUP BY 구문에 DESC를 써주었을 때와 ORDER BY 구문을 추가하여 DESC를 써주었을 때의 차이가 있는지 궁금합니다.

** TOP EARNERS 관련 본인 답변:

SELECT salary * months AS earnings, COUNT(*)

FROM Employee

GROUP BY earnings DESC

LIMIT 1

** TOP EARNERS 관련 선미님 해답:

SELECT salary * months AS earnings, COUNT(*)

FROM Employee

GROUP BY earnings

ORDER BY earnings

LIMIT 1

답변 1

답변을 작성해보세요.

0

안녕하세요.

동일하게 동작하는 코드입니다.

하지만 Standard SQL에는 없는 문법이라서 MySQL 이외 다른 DBMS에서는 동작하지 않을 수 있습니다. 

MySQL also allows you to sort the groups in ascending or descending orders while the standard SQL does not. The default order is ascending. For example, if you want to get the number of orders by status and sort the status in descending order, you can use the GROUP BY clause with DESC

GROUP BY with DESC: https://www.mysqltutorial.org/mysql-group-by.aspx/

What is Standard SQL? (ANSI, ISO): https://en.wikipedia.org/wiki/SQL