SQL 문제풀이
[해커랭크 SQL] Advanced Select - The PADS
냄비짱
2023. 8. 22. 23:42
728x90
❓ Question
https://www.hackerrank.com/challenges/the-pads
The PADS | HackerRank
Query the name and abbreviated occupation for each person in OCCUPATIONS.
www.hackerrank.com
❗ Answer
SELECT CONCAT(name,'(',LEFT(occupation,1),')')
FROM occupations
ORDER BY name;
SELECT CONCAT('There are a total of ' , a.cnt, ' ', LOWER(a.occupation), IF(cnt>=2,'s.','.'))
FROM (SELECT occupation, COUNT(*) cnt
FROM occupations
GROUP BY occupation) a
GROUP BY occupation
ORDER BY a.cnt, a.occupation;
📌 Discussion
- 1번 : concat으로 이름과 직업을 묶어줬다.
- 2번 : sub query inline view로 GROUP BY로 묶어서 집계해준 직업과 직업별 사람 수를 불러온다.
그 후 원하는 문장요소들을 가져와서 concat 해준다.
IF는 직업종사자가 한명일 때와 복수일 때를 구분해준다.