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는 직업종사자가 한명일 때와 복수일 때를 구분해준다.