[사전캠프] 데이터 속 김서방 찾기
2024. 8. 17. 15:32ㆍ내일배움캠프
※ 참고 : 과제 설명이 없어서 제목을 토대로 임의로 문제를 예상해 작성하였습니다.
문제 : '김' 씨 성을 가진 고객들의 수가 연령대별로 어떻게 되는지 확인하는 쿼리 작성
조건 : 'customers' 테이블에서 조회하며, 결과 컬럼에는 '연령대, 인원수' 가 출력되어야 하며 레코드는 '인원수' 가 제일 많은 연령대부터 순차적으로 정렬되어야 한다.
SELECT CASE WHEN age < 10 THEN '아동'
WHEN age >= 10 AND age < 20 THEN '10대'
WHEN age >= 20 AND age < 30 THEN '20대'
WHEN age >= 30 AND age < 40 THEN '30대'
WHEN age >= 40 AND age < 50 THEN '40대'
WHEN age >= 50 AND age < 60 THEN '50대'
WHEN age >= 60 AND age < 70 THEN '60대'
WHEN age >= 70 AND age < 80 THEN '70대'
WHEN age >= 80 AND age < 90 THEN '80대'
WHEN age >= 90 AND age < 100 THEN '90대'
ELSE '100대 이상'
END '연령대',
COUNT('연령대') '고객수'
FROM customers
WHERE name LIKE '김%'
GROUP BY 1
ORDER BY 2 DESC
WHERE 절을 통해 'name' 에 '김' 이라는 문자를 가진 레코드를 찾고, CASE 문을 통해 조건에 해당하는 'age' 값을 문자 데이터로 가공하였다. GROUP BY 를 사용해 CASE 문으로 생성한 컬럼 결과를 그룹화하고 COUNT 를 통해 그룹별 레코드 개수를 파악해 '고객수' 컬럼을 결과로 생성, 마지막으로 ORDER BY 를 사용해 '고객수' 가 많은 연령대 부터 순차적으로 정렬하였다.
'내일배움캠프' 카테고리의 다른 글
[사전캠프] 네트워크 쉽게 이해하기 (0) | 2024.08.17 |
---|---|
[사전캠프] Java, Spring 톺아보기 (0) | 2024.08.17 |
[사전캠프] TIL 작성 - 24.08.16(금) (0) | 2024.08.16 |
[사전캠프] TIL 작성 - 24.08.15(목) (0) | 2024.08.15 |
[사전캠프] SQL 연습문제 - 4 (0) | 2024.08.15 |