문제풀이/HakerRank
[HackerRank] The PADS
곱마2
2023. 7. 19. 23:33
반응형
1. 문제
해석
1번 해석
- OCCUPATIONS 테이블에 있는 모든 이름과 각 직업의 첫 글자를 괄호로 묶는다.
- 이름의 알파벳순으로 정렬
2번 해석
- OCCUPATIONS 테이블에서 직업과 각 직업의 수 출력 ('There are a total of [직업 수][직업명]' 형식으로 출력)
- 직업 숫자, 직업 알파벳 순서로 오름차순으로 출력
- 직업은 소문자로 출력
해답 예시
Ashely(P)
Christeen(P)
Jane(A)
Jenny(D)
Julia(A)
Ketty(P)
Maria(A)
Meera(S)
Priya(S)
Samantha(D)
There are a total of 2 doctors.
There are a total of 2 singers.
There are a total of 3 actors.
There are a total of 3 professors.
2. 풀이
보통 문자열을 합치기 위해 +기호를 사용했지만 오라클에서는 계산이 가능한 숫자형 칼럼에서만 사용이 가능하다.
그렇기에 문자형 타입에는 concat이나 ||을 사용해야 한다.
오라클에는 문자열을 합치기 위해 concat과 ||를 사용하는 방법이 있지만 보통은 가독성을 위해 || 사용한다.
특히 여러개의 문자열을 붙이게 되면 concat안에 또 concat함수가 들어가야 하므로 가독성이 떨어진다.
때문에 여러 개의 문자열을 붙일 때는 ||를 활용하여 문자열을 합치는 것이 좋다.
1. OCCUPATIONS 테이블에 있는 모든 이름과 각 직업의 첫 글자를 괄호로 묶는다.
SELECT Name || '(' || substr(Occupation,1,1) || ')'
FROM Occupations
ORDER BY Name;
2. OCCUPATIONS 테이블에서 직업과 각 직업의 수 출력 ('There are a total of [직업 수][직업명]' 형식으로 출력)
단 직업은 소문자로
정렬은 오름차순으로
SELECT 'There are a total of ' || COUNT(*) || ' ' || LOWER(Occupation) || 's.'
FROM Occupations
GROUP BY Occupation
ORDER BY COUNT(*), Occupation;
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |

반응형