PS/BOJ&Programmers
[프로그래머스] 131530. 가격대 별 상품 개수 구하기
sebinChu
2024. 2. 10. 00:19
문제
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
group by기본 문제다.
문제를 잘 보면 만원 단위의 가격대 별로 상품 개수를 출력해야 한다.
상품 개수는 예시에 잘 나와있듯이 product_id를 집계 함수로 잘 세어주면 된다.
만원 단위의 가격대 별로 조작하기 위해서는, 현재 DB에 저장된 price 값을 조정하고, GROUP BY해야한다.
SQL Integer 조작
14000, 23000 이런 값을 만원 단위로 떨어지게 만드려면 다음과 같은 과정을 거친다.
price가 23000원일 때
SQL 연산 | price/10000 | floor(price/10000) | floor(price/10000)*10000 |
예시 | 2.30 | 2 | 20000 |
- floor는 소수점을 제거하는 함수다.
전체 코드
SELECT floor(price/10000)*10000 as price_group, count(product_id) as products
from product
group by price_group
order by price_group;