프로그래머스 MySQL 가격대 별 상품 개수 구하기
2023. 1. 30. 22:38ㆍSQL/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를 하지 않은 상태로 코드를 실행하니
위의 표와 같이 출력되어서 전체 표를 다시 확인해 보게되었다. 결국 생각한 나머지 코드들을 넣어보니 맞는 값이 출력되는 것을 확인 할 수 있었다.
중간중간 확인되지 않기 때문에 이런 상황을 종종 마주하게 되는데 처음부터 다시 확인하는 것도 좋지만 진행이 덜 되었기 때문에 이렇게 나올 수 있다라는 것을 인지하고 다음 코드를 넣은 다음 정말 틀렸으면 처음부터 확인해보도록 하는것도 좋을 것 같다.
'SQL > MYSQL' 카테고리의 다른 글
프로그래머스 MySQL 진료과별 총 예약 횟수 출력하기 (0) | 2023.01.27 |
---|---|
프로그래머스 MySQL 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.01.19 |
프로그래머스 MYSQL 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.01.04 |
프로그래머스 MYSQL 흉부외과 또는 일반외과 의사 목록 출력하기 (1) | 2022.12.20 |
프로그래머스 MYSQL 과일로만든 아이스크림 고르기 (0) | 2022.12.08 |