알고리즘/해커랭크
[MySQL/Select] HackerRank The PADS
waterground
2022. 1. 13. 12:58
1. 문제
https://www.hackerrank.com/challenges/the-pads/problem?isFullScreen=true&h_r=next-challenge&h_v=zen
The PADS | HackerRank
Query the name and abbreviated occupation for each person in OCCUPATIONS.
www.hackerrank.com
2. 풀이
- 이름을 나열하는 쿼리과 직업별 사람수를 세는 쿼리를 각각 작성한다.
- 이름을 나열하는 쿼리에서는
- AnActorName(A) 형식으로 만들기 위해 concat을 사용한다.
- 직업의 첫글자를 잘라내기 위해 left()를 사용한다. substring(occupation, 1, 1)도 가능하다
- 직업별 사람수를 세는 쿼리
- 형식에 맞춘 문장을 만들기 위해 concat을 사용한다.
- 직업을 소문자로 하기 위해 lower()을 사용하고, 직업별 사람수 오름차순, 이름 글자별로 오름차순 정렬한다.
3. 코드
select concat(name, '(', left(occupation,1), ')')
from occupations
order by name;
select concat('There are a total of ', count(*), ' ' , lower(occupation), 's.')
from occupations
group by occupation
order by count(*) asc, occupation asc;