카테고리 별 상품 개수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/131529
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 문제
PRODUCT 테이블은 아래와 같은 구조로 되어있으며,
PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.
상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미합니다.
결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요.
Column name | Type | Nullable |
---|---|---|
PRODUCT_ID | INTEGER | FALSE |
PRODUCT_CODE | VARCHAR(8) | FALSE |
PRICE | INTEGER | FALSE |
2) 예시
예를 들어 PRODUCT 테이블이 다음과 같다면
PRODUCT_ID | PRODUCT_CODE | PRICE |
---|---|---|
1 | A1000011 | 10000 |
2 | A1000045 | 9000 |
3 | C3000002 | 22000 |
4 | C3000006 | 15000 |
5 | C3000010 | 30000 |
6 | K1000023 | 17000 |
상품 카테고리 코드 별 상품은 아래와 같으므로,
A1: PRODUCT_ID가 1, 2 인 상품
C3: PRODUCT_ID가 3, 4, 5 인 상품
K1: PRODUCT_ID가 6 인 상품
다음과 같은 결과가 나와야 합니다.
CATEGORY | PRODUCTS |
---|---|
A1 | 2 |
C3 | 3 |
K1 | 1 |
3) 풀이
1. 테이블에서 카테고리코드와 그 수를 조회합니다.
● SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY_CODE, COUNT(*) AS COUNT FROM PRODUCT
PRODUCT_CODE에서 좌측으로 2번째 글자까지 추출하여 CATEGORY_CODE로 정의합니다.
이렇게 되면 CATEGORY_CODE라는 열과 COUNT라는 열이 생기고,
그 아래 결과값들이 나열되게 됩니다.
(COUNT는 CATEGORY_CODE에 해당하는 수)
※ LEFT
문자열의 왼쪽에서부터 추출하고자 하는 문자의 개수를 지정
※ RIGHT
문자열의 오른쪽에서부터 추출하고자 하는 문자의 개수를 지정
2. 결과값은 CATEGORY_CODE별로 출력되게 그룹화합니다.
● GROUP BY CATEGORY_CODE
2. CATEGORY_CODE 순서별로 출력되게합니다.
● ORDER BY CATEGORY_CODE
4) 코드
SELECT
LEFT(PRODUCT_CODE, 2) AS CATEGORY_CODE,
COUNT(*) AS COUNT
FROM PRODUCT
GROUP BY CATEGORY_CODE
ORDER BY CATEGORY_CODE;
'Programmers Coding Test > MySQL' 카테고리의 다른 글
[프로그래머스 132202] MySQL - Level2 진료과별 총 예약 횟수 출력하기 (0) | 2023.08.30 |
---|---|
[프로그래머스 59412] MySQL - Level2 입양 시각 구하기(1) (0) | 2023.08.28 |
[프로그래머스 59040] MySQL - Level2 고양이와 개는 몇 마리 있을까 (1) | 2023.08.28 |
[프로그래머스 59409] MySQL - Level2 중성화 여부 파악하기 (0) | 2023.08.28 |
[프로그래머스 131115] MySQL - Level2 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2023.08.28 |