[알고리즘] 가격대 별 상품 개수 구하기
2023. 10. 3. 11:55ㆍ알고리즘 풀이/SQL
문제 설명
다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.
Column name Type Nullable
PRODUCT_ID INTEGER FALSE
PRODUCT_CODE VARCHAR(8) FALSE
PRICE INTEGER FALSE
상품 별로 중복되지 않는 8자리 상품코드 값을 가지며 앞 2자리는 카테고리 코드를 나타냅니다.
문제
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
예시
예를 들어 PRODUCT 테이블이 다음과 같다면
PRODUCT_ID PRODUCT_CODE PRICE
1 A1000011 10000
2 A1000045 9000
3 C3000002 22000
4 C3000006 15000
5 C3000010 30000
6 K1000023 17000
만원 단위의 가격대 별로 상품을 나누면
가격대가 0원 ~ 1만원 미만인 상품은 PRODUCT_ID 가 2인 상품 1개,
가격대가 1만원 이상 ~ 2만원 미만인 상품들은 PRODUCT_ID 가 1, 4, 6인 상품 3개,
가격대가 2만원 이상 ~ 3만원 미만인 상품은 PRODUCT_ID 가 3인 상품 1개,
가격대가 3만원 이상 ~ 4만원 미만인 상품은 PRODUCT_ID 가 5인 상품 1개,
에 각각 해당하므로 다음과 같이 결과가 나와야 합니다.
PRICE_GROUP PRODUCTS
0 1
10000 3
20000 1
30000 1
나의 풀이
- floor를 알면 되는 문제
select floor(price / 10000) * 10000 as price_group, count(*) as products from product
group by floor(price / 10000)
order by price_group
- select에서 만든 별칭을 group by에서도 사용할 수 있다.
select floor(price / 10000) * 10000 as price_group, count(*) as products from product
group by price_group
order by price_group
- alias(별칭)는 select와 from에만 선언할 수 있다.
- where에서는 사용이 안된다.
- group by나 order by에서는 사용 가능하다.
Reference
[SQL] 가격대 별 상품 개수 구하기(프로그래머스/MySQL/Level 2)
안녕하세요! 데코입니다! 오늘은 프로그래머스 코딩테스트 연습에 있는 "가격대 별 상품 개수 구하기" 문제를 포스팅하려고 합니다! 바로 포스팅 시작할게요! :) (출처 : https://school.programmers.co.kr/
kkw-da.tistory.com
[MYSQL] 별칭(ALIAS)이란? feat.주의사항
별칭(ALIAS)은 칼럼, 테이블, 서브 쿼리, where절 등에 내가 원하는 이름(별칭)을 붙여주는 것으로 접근이 쉬워집니다. 예약어는 AS 1. 칼럼(column)에 별칭 사용하기 -- mem_id, addr 두 가지 칼럼(열)의 이
wnwa.tistory.com
'알고리즘 풀이 > SQL' 카테고리의 다른 글
[알고리즘] 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.10.04 |
---|---|
[알고리즘] 카테고리 별 도서 판매량 집계하기 (0) | 2023.10.04 |
[알고리즘] 고양이와 개는 몇 마리 있을까 (0) | 2023.10.03 |
[알고리즘][X] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.10.03 |
[알고리즘][X] 자동차 대여 기록 별 대여 금액 구하기 (0) | 2023.10.03 |