해커랭크 [The PADS]

윤태영·2024년 8월 26일
0

문제

https://www.hackerrank.com/challenges/the-pads?isFullScreen=true

  1. OCCUPATIONS의 모든 names을 불러오기, 각 직업의 첫번째 알파벳을 ()안에 넣어 표시할 것. 예시) ActorName(A), DocterName(D) (Name 순으로 정렬)

  2. 각 직업의 숫자를 아래의 양식에 따라 print할 것 (각 직업의 발생횟수 오름차순, 둘 이상의 직업에 동일한 [occupation_count]가 있으면 알파벳 순으로 정렬해야 합니다.)

There are a total of [occupation_count] [occupation]s.
  1. Note: There will be at least two entries in the table for each type of occupation.

INPUT FORMAT

TABLE NAME : OCCUPATIONS

SAMPLE INPUT

SAMPLE OUTPUT

문제풀이

1) CONCAT을 활용해서 STRING 연결하기

CONCAT

SELECT CONCAT(str1, str2 ...)
  • 문자열을 나열하여 값을 합침
  • NULL이 들어가면 반환값은 무조건 null이다.

2) SUBSTR을 활용하여 직업 COLUMN의 첫째 글자 추출하기

3) GROUP BY와 ORDER BY 를 활용한 정렬

4) COUNT 함수를 활용한 직업별 숫자 세기

5) LOWER 함수를 활용한 소문자 반환

쿼리

SELECT CONCAT(NAME, '(', LEFT(OCCUPATION,1),  ')')
FROM OCCUPATIONS
ORDER BY NAME;

SELECT CONCAT('There are a total of', ' ', count(*), ' ', LOWER(OCCUPATION),'s.' )
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(OCCUPATION), OCCUPATION;

OUTPUT

profile
ice blue

0개의 댓글