아래의 문제는 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
'코딩 테스트' 카테고리의 다른 글
[백준][python]1436.영화감독 숌 -완전탐색(브루트포스) (0) | 2021.06.10 |
---|---|
[백준][python] 1157.단어공부 -문자열 (0) | 2021.06.10 |
[HackerRank] Symmetric Pairs | Self Join (0) | 2021.05.31 |
[Python] 코딩테스트 고득점Kit | DFS/BFS1 - 타겟넘버 (0) | 2021.05.28 |
[LeetCode] 197. Rising Temperature | DATEDIFF (0) | 2021.05.27 |
[LeetCode] 184. Department Highest Salary | IN (0) | 2021.05.27 |