본문 바로가기
프로그래머스/MySQL

[프로그래머스] 가격대 별 상품 개수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2024. 10. 6.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

반응형

2. 풀이과정

해당 문제는 만원 단위의 가격대 별로 상품 개수를 조회하는 문제이다.

결과를 조회할 때 컬럼명은 PRICE_GROUP과 PRODUCTS로 지정해야 한다.

가격대 정보는 각 구간의 최소 금액으로 표시한다.

예를 들어 10,000원 이상 20,000원 미만 구간은 10,000원으로 표시해 준다.

 

가격 컬럼의 값을 보고 가격대 정보를 구하기 위해선 TRUNCATE() 함수를 활용하여 가격 컬럼의 값에서 일부를 버림 해야 한다.

TRUNCATE(숫자, 자릿수) 형식으로 지정하면 해당 숫자를 자릿수를 기준으로 버림 한다.

만약 자릿수가 양수이면 해당 자릿수에서 소수점을 버리고, 자릿수가 음수이면 소수점 이하를 버리고 정수의 뒤에서부터 지정된 자릿수까지 0으로 처리하게 된다.

예를 들면 TRUNCATE(4.567, 2) 일 경우 4.56이 반환되고, TRUNCATE(4567, -2)이면 4500이 반환된다.

이처럼 TRUNCATE()를 활용해 가격대 정보를 구한다.

 

이후 가격대 별로 상품의 개수를 조회해야 하므로 구한 가격대 정보를 기준으로 그룹으로 나눈 후, 각 그룹별 데이터의 개수 COUNT() 함수로 세어 가격대 별로 상품의 개수를 조회한다.

최종 결과는 가격대를 기준으로 오름차순 정렬하여 조회한다.

 

  1. 가격 컬럼에서 만원 단위의 가격대 정보를 구하여 PRICE_GROUP 컬럼으로 조회하고, 가격대 별로 나눈 각 그룹별 데이터 개수를 세어 PRODUCTS 컬럼으로 조회한다. SELECT TRUNCATE(PRICE, -4) AS PRICE_GROUP, COUNT(*) AS PRODUCTS
  2. 값을 조회할 테이블을 지정한다. FROM PRODUCT
  3. 가격대 별로 상품 개수를 조회해야 하므로 가격대를 기준으로 그룹을 만들어준다. GROUP BY PRICE_GROUP
  4. 최종 결과는 가격대를 기준으로 오름차순 정렬하여 조회한다. ORDER BY PRICE_GROUP
728x90

3. 소스코드

SELECT TRUNCATE(PRICE, -4) AS PRICE_GROUP, COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
728x90
반응형