문제
코드
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()함수 사용
문제가 너무 길어서 긴장했는데 생각보다 괜찮았다. 해커랭크나 릿코드는 영어 공부도 같이 하고 있는 것 같은 느낌이다.
출처
반응형
'Algorithm > MySQL' 카테고리의 다른 글
[LeetCode] 196. Delete Duplicate Emails (MySQL) (0) | 2021.07.08 |
---|---|
[LeetCode] 627. Swap Salary (MySQL) (0) | 2021.07.08 |
[해커랭크(HackerRank)] The Blunder (MySQL) (0) | 2021.07.06 |
[해커랭크(HackerRank)] Japan Population (MySQL) (0) | 2021.07.05 |
[해커랭크(HackerRank)] Symmetric Pairs (MySQL) (0) | 2021.07.05 |