SQL/SQL 문제
[HackerRank] The PADS
Lim Seung Hyun
2021. 11. 29. 09:02
문제 : https://www.hackerrank.com/challenges/the-pads/problem?isFullScreen=true
The PADS | HackerRank
Query the name and abbreviated occupation for each person in OCCUPATIONS.
www.hackerrank.com
문제 해설
- 쿼리는 총 2개로 구성
- 이름(직업의 첫글자)로 출력하되 이름은 알파벳 순으로 정렬해서 조회 (Ex) Name : Anna Occupation : Doctor라면 Anna(D)
- "There are a total of <각 직업별 카운트> <직업명>s."으로 출력하면서 갯수와 직업 순으로 정렬하면서 조회 (Ex) Doctor가 4명이라면 "There are a total of 4 doctors." -> 직업명은 소문자로 치환
나의 풀이 <MySQL>
SELECT CONCAT(Name, "(", LEFT(Occupation, 1), ")")
FROM OCCUPATIONS
ORDER BY Name;
SELECT CONCAT("There are a total of ", COUNT(Occupation), " ", LOWER(Occupation), "s.")
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(Occupation), Occupation;
- CONCAT을 이용하여 문자열을 연결하여 원하는 형태로 완성하였다.
- CONCAT(문자열1, 문자열2, 문자열3, ... , 문자열n) : 문자열1부터 문자열n까지 나열한 결과
- LEFT로 직업의 첫 글자를 추출하는데 이용
- LEFT(문자열, n) : 문자열에서 n번까지의 문자열을 추출
LOWERS(문자열) : 문자열을 모두 소문자로 변환
728x90