728x90
❓ Question
https://www.hackerrank.com/challenges/the-pads
❗ 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는 직업종사자가 한명일 때와 복수일 때를 구분해준다.
'SQL 문제풀이' 카테고리의 다른 글
[해커랭크 SQL] Basic Join - African Cities (0) | 2023.08.22 |
---|---|
[해커랭크 SQL] Basic Join - Population Census (0) | 2023.08.22 |
[해커랭크 SQL] Advanced Select - Type of Triangle (0) | 2023.08.18 |
[해커랭크 SQL] Basic Select - Employee Salaries (0) | 2023.08.18 |
[해커랭크 SQL] Basic Select - Employee Names (0) | 2023.08.18 |