본문 바로가기
코딩 테스트

[HankerRank] The PADS | CONCAT, SUBSTR

by 카프리썬_ 2021. 5. 31.
728x90
728x90

아래의 문제는 HankerRank의 SQL문제 내용이며 코드는 직접 푼 내용입니다. 


 

The PADS

 

문제상황 및 주어진 테이블

요구사항

2가지 쿼리를 짜라. 

1. OCCUPATIONS 테이블에 있는 모든이름과 직업의 첫글자를 뽑아라 

단, 직업의 첫글자는 괄호로 묶여있고, 이름은 알파벳 순으로 정렬
예를 들면 : AnActorName(A)ADoctorName(D)AProfessorName(P)ASingerName(S)

2. 각 직업의 발생횟수를 직업을 다음과 같은 형식으로 출력 

예를 들면, There are a total of [occupation_count] [occupation]s. ->[occupation_count] : 직업의 발생횟수 

단, [occupation]는 소문자 직업 이름입니다.

두 개 이상의 Occupation 에 동일한이있는 경우 [occupation_count]알파벳순으로 정렬해야합니다.

 

결과물

 


해석

그냥 컬럼을 뽑는게 아니라 문자열로 생성해서 뽑아야했다. 그래서 CONCAT이 필요했다. 

 

결과

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

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

 


배운점

  • CONCAT : 문자열 합치기 
  • SUBSTR : 문자열 자르기 

 

응용

SUBSTR(문자열, 시작위치,개수) 

문자열을 시작지점에서부터 길이만큼 잘라 읽는다. 이떄 문자열의 시작위치는 1부터 시작한다

또는 SUBSTR(문자열,시작위치)

문자열을 시작지점부터 끝까지 잘라 읽는다.

CONCAT(STR1,STR2 ...)

두개이상의 파라미터를 넣어서 문장을 만들어 출력할 수 있음.

문자열을 하나로 합치거나 연결하는 방법이다. 

여러가지 요소들은 , 로 구분할 수 있다.

CONCAT의 요소로 직접 ' ' 을 추가하면 공백까지 넣은 문자열을 만들 수 있다

 

 


참고 

참고한 블로그 링크

SUBSTR : https://sesok808.tistory.com/507

CONCAT : https://sesok808.tistory.com/491

728x90
반응형