프로그래머스 MySQL 가격대 별 상품 개수 구하기

2023. 1. 30. 22:38SQL/MYSQL

문제. PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.

PRODUCT 테이블

1. 나의 답

SELECT
TRUNCATE(PRICE, -4) as PRICE_GROUP,
COUNT(PRODUCT_ID) as PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

 

2. 왜 이렇게 생각했나

SELECT TRUNCATE(PRICE, -4) as PRICE_GROUP, COUNT(PRODUCT_ID) as PRODUCTS
FROM PRODUCT

 CASE를 통하여 구분 지어주는 방법도 있었지만 TRUNCATE 함수를 활용하여 더 간단하게 만들어 줄 수 있었다. 구분지어진 갯수를 세어주기 위하여 COUNT함수에 PRODUCT_ID를 넣어주었다.

GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

 TRUNCATE함수를 통하여 구분지어진 PRICE_GROUP을 GROUP BY로 구간마다 묶어주었다. 이로인하여 PRODUCT_ID의 갯수를 셀 수 있게 되었다.

 가격대를 기준으로 오름차순 해주기위하여 ORDER BY를 사용했다.

 

3. 만난 오류

SELECT TRUNCATE(PRICE, -4) as PRICE_GROUP

 TRUNCATE를 TURNCATE라고 사용해서 오류가 떴다. 함수를 적을 때 다른 용어로 적지는 않았는지 잘 확인하자.

 

 오류는 아니었으나 GROUP BY를 하지 않은 상태로 코드를 실행하니

 위의 표와 같이 출력되어서 전체 표를 다시 확인해 보게되었다. 결국 생각한 나머지 코드들을 넣어보니 맞는 값이 출력되는 것을 확인 할 수 있었다.

 중간중간 확인되지 않기 때문에 이런 상황을 종종 마주하게 되는데 처음부터 다시 확인하는 것도 좋지만 진행이 덜 되었기 때문에 이렇게 나올 수 있다라는 것을 인지하고 다음 코드를 넣은 다음 정말 틀렸으면 처음부터 확인해보도록 하는것도 좋을 것 같다.