해커랭크를 통해 SQL 연습 중이다.
확실히 영문으로 된 문제라 난이도 자체는 쉽지 않지만 독해하는데 꽤 시간이 걸리는 것 같다.
그래도 하다보면 익숙해지겠거니 하면서 천천히 풀고 있다.
문제
목표/풀이
두개의 쿼리를 만들기
- 첫번째 쿼리
- 이름 오름차순 정렬
- 단, 직업명 첫 글자를 괄호로 감싸서 삽입어구로 제시 예 AnActorName(A), ADoctorName(D), AProfessorName(P),
- 두번째 쿼리
- 직업 개수 구하기
- 직업 개수 오름차순 정렬 → 직업명 오름차순 정렬
- 아웃풋 포맷: There are a total of [occupation_count] [occupation]s.
- occupation_count : 직업 존재 개수
- occupation : 직업명 소문자 </aside>
코드
-- 첫번째 쿼리
SELECT CONCAT(Name, '(', LEFT(Occupation, 1), ')') AS output1
FROM OCCUPATIONS
ORDER BY Names;
-- 두번째 쿼리
SELECT COANCAT('There are a total of', COUNT(*), ' ', LOWER(Occupation), 's.') AS output2
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(*), Occupation;
주의사항
Query an alphabetically ordered list of all names in OCCUPATIONS, immediately followed by the first letter of each profession as a parenthetical (i.e.: enclosed in parentheses).
→ 모든 이름 알파벳 오름차순으로 정렬하라, 바로 옆에 각 직업명의 첫 글자를 붙여라(삽입어구로, 괄호를 감싸서)
The results of the second query are ascendingly ordered first by number of names corresponding to each profession, and then alphabetically by profession
→ 두번째 쿼리의 결과는 직업 개수 오름차순으로 정렬하라, 그 다음에 직업명 알파벳 오름차순으로 정렬하라
'코딩 테스트 연습' 카테고리의 다른 글
| SQL (MySQL, Oracle 중앙값 구하기) - Weather Observation Station 20 (0) | 2026.01.01 |
|---|---|
| SQL (계층쿼리, INNER JOIN) - New Companies (0) | 2025.12.31 |
| SQL (재귀 쿼리, LEFT JOIN, LAG, COALESCE ) - 이틀치 누적 출고량 시뮬레이션 (0) | 2025.12.22 |
| SQL (RANK(), 상위 1%) - 사용자의 송금기록으로 상위 1% 찾기 (0) | 2025.12.17 |
| SQL (PIVOT) - 제품 카테고리 별 매출 추이 (0) | 2025.12.12 |