인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

데잇걸즈4기_최윤정님의 프로필 이미지
데잇걸즈4기_최윤정

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

해커랭크 Top Earners 코드 문의

작성

·

234

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

데잇걸즈4기_최윤정님의 프로필 이미지
데잇걸즈4기_최윤정

작성한 질문수

질문하기