PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
문제링크
조건정리
1. 만원 단위 가격대 별로 나누기
PRICE_GROUP
PRODUCTS
지정풀이
CASE WHEN
으로 나눠야겠다고 생각함 + 컬럼명지정SELECT CASE WHEN PRICE BETWEEN 0 AND 9999 THEN 0
WHEN PRICE BETWEEN 10000 AND 19999 THEN 10000
WHEN PRICE BETWEEN 20000 AND 29999 THEN 20000
WHEN PRICE BETWEEN 30000 AND 39999 THEN 30000
WHEN PRICE BETWEEN 40000 AND 49999 THEN 40000
WHEN PRICE BETWEEN 50000 AND 59999 THEN 50000
WHEN PRICE BETWEEN 60000 AND 69999 THEN 60000
WHEN PRICE BETWEEN 70000 AND 79999 THEN 70000
WHEN PRICE BETWEEN 80000 AND 89999 THEN 80000
END AS PRICE_GROUP
FROM PRODUCT
SELECT CASE WHEN PRICE BETWEEN 0 AND 9999 THEN 0
WHEN PRICE BETWEEN 10000 AND 19999 THEN 10000
WHEN PRICE BETWEEN 20000 AND 29999 THEN 20000
WHEN PRICE BETWEEN 30000 AND 39999 THEN 30000
WHEN PRICE BETWEEN 40000 AND 49999 THEN 40000
WHEN PRICE BETWEEN 50000 AND 59999 THEN 50000
WHEN PRICE BETWEEN 60000 AND 69999 THEN 60000
WHEN PRICE BETWEEN 70000 AND 79999 THEN 70000
WHEN PRICE BETWEEN 80000 AND 89999 THEN 80000
END AS PRICE_GROUP,
COUNT(1) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
SELECT CASE WHEN PRICE BETWEEN 0 AND 9999 THEN 0
WHEN PRICE BETWEEN 10000 AND 19999 THEN 10000
WHEN PRICE BETWEEN 20000 AND 29999 THEN 20000
WHEN PRICE BETWEEN 30000 AND 39999 THEN 30000
WHEN PRICE BETWEEN 40000 AND 49999 THEN 40000
WHEN PRICE BETWEEN 50000 AND 59999 THEN 50000
WHEN PRICE BETWEEN 60000 AND 69999 THEN 60000
WHEN PRICE BETWEEN 70000 AND 79999 THEN 70000
WHEN PRICE BETWEEN 80000 AND 89999 THEN 80000
END AS PRICE_GROUP,
COUNT(1) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
이건 필히 쉬운 방법이 있을 것 같아서 찾아봤다
다른사람 풀이
SELECT FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP,
COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;
허거덩.. 너무 간단하고 좋다
PRICE / 10000 10000
ex) 가격이 30,000원일 경우
30000 / 10000 100000 = > 30000으로 표시
헤 저도 수희님이랑 존똑으로 풀었서요 동지동지