본문 바로가기

Algorithm/MySQL

[해커랭크(HackerRank)] The PADS (MySQL)

문제

코드

SELECT CONCAT(name, '(', substring(occupation, 1, 1), ')')
FROM Occupations
ORDER BY name, substring(occupation, 1, 1);

SELECT CONCAT('There are a total of ', count(occupation), ' ', LOWER(occupation), 's.')
FROM Occupations
GROUP BY occupation
ORDER BY count(occupation), occupation
첫번째 문제
  • occupation테이블의 모든 이름 목록을 알파벳 순서로 나열하고 각 직업의 첫 글자를 괄호 안에 묶어라
  • 이름과 직업의 첫글자를 select에 보여주기 위해 문자열을 합치는 concat을 사용
  • 정렬순서는 name과 occupation의 첫글자 순
두번째 문제
  • occupation테이블에서 직업과 각 직업의 수를 오름차순으로 출력해라 직업은 소문자로 출력
  • 출력할 포맷은 'There are a total of [직업 수][직업명]s.'
  • occupation을 그룹으로 묶어서 count를 구해야하기 때문에 group by를 해줌
  • 순서는 occupation을 count로 묶어준 수, 두번째는 한 개 이상의 직업의 수가 같을 경우 알파벳순
  • 문자열은 concat으로 묶어서 출력하되 occupation이 소문자로 출력해야하므로 LOWER()함수 사용

문제가 너무 길어서 긴장했는데 생각보다 괜찮았다. 해커랭크나 릿코드는 영어 공부도 같이 하고 있는 것 같은 느낌이다.

출처

 

반응형