sql 문제를 풀며, 다시 내용을 정립하는 시간을 가지기로 하였다! 해커랭크의 medium, LeetCode, solvesql을 풀어나가기로!
사실 gitblog를 세팅해서 그곳에서 업데이트하고 싶었는데, 일주일 내내 찔끔하다가 결국 티스토리로 돌아왔다 🥲
문제
OCCUPATIONS에 있는 모든 이름의 알파벳순으로 정렬된 목록을 쿼리, 각 직업의 첫 글자를 괄호로 묶어서 출력하라
출력 예시
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.
첫번째 출력
- 이름을 알파벳 순서로 나열
- 각 직업의 첫 글자를 괄호 안으로 묶어서 함께 출력
두번째 출력
- 각 직업의 수를 오름차순으로 출력
- 직업은 소문자로 출력
There are a total of [직업 수][직업명]s.
형태
풀이
문자열을 합치기 때문에 concat
, ||
을 사용을 고려해야한다.
❗️주의) ||
의 경우
oracle
에서는 문자열 합치는 기능으로 활용mysql
에서는 논리연산자 참, 거짓 여부를 다루는 데 활용
SELECT concat(name, '(', SUBSTR(occupation,1,1),')')
FROM OCCUPATIONS
order by name, occupation;
SELECT concat('There are a total of ', count(*), ' ', lower(occupation), 's.')
FROM OCCUPATIONS
group by occupation
order by count(*), occupation;
마지막에 '.'을 함께 출력 안해서, 생각보다 시간이 걸렸다. 출력 결과를 먼저 제대로 정립하고 문제를 풀어나갈 것!
추가로,
SUBSTR
대신해서,LEFT(occupation, 1)
으로 사용이 가능count(*)
으로 사용하였지만 (해당 문제에서는 같은 결과를 얻을 수 있음)count(name)
,count(occupation)
으로도 사용이 가능함.
반응형
'언어|프로그램 메모장 > SQL - 문제 풀기' 카테고리의 다른 글
[HackerRank] Binary Tree Nodes (0) | 2022.12.24 |
---|
댓글