일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- string 모듈
- ML
- 인터프리터언어
- TF-IDF
- 컴파일러
- 오라클
- 해시
- xla
- pandas
- Relation Extraction
- 코딩테스트
- NumPy
- 해커랭크
- 코테
- 자료구조
- 프로그래밍
- 구름톤
- python
- hackerrank
- 해시테이블
- streamlit
- 컴파일언어
- Compiler
- 코딩
- sql
- Oracle
- 판다스
- BM25
- 프로그래머스
- 파이썬
- Today
- Total
문제 링크
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
1. 알파벳 순으로 정렬된 OCCUPATIONS의 모든 이름 목록을 쿼리한 다음 각 직업의 첫 번째 글자를 괄호로 묶어서 표시한다.
예: AnActorName(A), ADoxtorName(D), AProfessorName(P) 및 ASingerName(S)이 있습니다.
2. OCCUPATIONS에서 각 직업의 발생 횟수를 쿼리합니다.
발생 횟수를 오름차순으로 정렬하고 다음 형식으로 출력하십시오.
There are a total of [occupation_count] [occupation]s.
여기서 [operation_count]는 OCCUPATIONS에서 발생한 직업의 횟수이고 [operation]은 소문자 직업 이름입니다. 둘 이상의 직업이 동일한 [occation_count]을 가진 경우 알파벳 순으로 정렬해야 합니다.
연결 연산자(||)와 SUBSTR()을 사용한 풀이
substr(occupation, 1, 1)
-- 먼저 이름과 이름 뒤에 직업의 첫 글자를 괄호 안에 출력하기 위하여 SUBSTR을 사용한다
-- SUBSTR을 사용하여 직업의 첫 글자를 뽑는다
select name || '(' || substr(occupation, 1, 1) || ')'
-- 연결 연산자(||)를 사용하여 이름(직업의첫글자)가 출력될 수 있도록 한다
order by name
-- 이름이 알파벳순으로 나오도록 정렬한다
group by occupation
order by count(*), occupation
-- 밑의 결과를 출력하기 위해서는 먼저 직업별로 그룹을 만들어야 직업별로 몇 번 나오는지를 알 수 있다
-- 직업별로 나오는 횟수를 오름차순, 그리고 동일한 횟수일 경우 직업명의 알파벳순으로 나오도록 정렬한다
select 'There are a total of ' || count(*) || ' ' || lower(occupation) || 's.'
-- 연결연산자(||)를 사용하여 문장으로 출력될 수 있도록 만든다
-- 문제에서 소문자로 직업을 출력하라고 하였으니 lower을 써서 소문자로 변환한다
** 두 쿼리를 합하여(union 또는 union all을 사용하여) 출력해야 하는 줄 알았는데 따로 출력되게 해도 답으로 인정하는 듯하다
union all을 사용할 풀이 (union을 써도 두 쿼리가 교집합이 없기 때문에 동일하게 출력된다)
'SQL' 카테고리의 다른 글
(프로그래머스) SQL Level 3 [헤비 유저가 소유한 장소] Oracle 풀이 (0) | 2021.12.08 |
---|---|
(HackerRank) 해커랭크 SQL [Binary Tree Nodes] Oracle 풀이 (0) | 2021.12.07 |
(HackerRank) 해커랭크 SQL [Type of Triangle] Oracle 풀이 (0) | 2021.12.03 |
(HackerRank) 해커랭크 SQL [Top Competitors] Oracle 풀이 (0) | 2021.12.03 |
(HackerRank) 해커랭크 SQL [The Report] Oracle 풀이 (0) | 2021.12.02 |