Study/SQL

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

delay100 2024. 1. 12. 15:40
728x90
반응형
SMALL

코딩테스트 연습 > SELECT > 가격대 별 상품 개수 구하기

난이도: Lv.2 

언어: MySQL

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

실패

SELECT AS PRICE_GROUP, COUNT(a.PRODUCT_ID) AS PRODUCTS
FROM PRODUCT a
GROUP BY 
ORDER BY PRICE_GROUP

문제를 잘 안읽어서 n천원, nn만원도 나오는 줄 알고 ... 혼자 머리를 끙끙 싸맸던 문제입니다..ㅋㅋㅋㅋㅋ(근데 진짜 이런 상황이라면.. case문 안쓰고 어떻게 하지..?? case문 필수인가..)

사실 이 문제는 실패입니다... 이 상태에서 생각이 나질 않아 여러 답안을 찾아봤습니다...ㅠㅠ

즐겨찾기에 추가한 후 추후에 다시 풀어보겠습니다..!!

 

성공

성공1. *채택

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

TRUNCATE 를 이용해 n만원만 남기고 나머지 자리를 다버리는 방법입니다.

가장 직관적이고 알기 쉬워서 채택했습니다. 

참고한 블로그는 더보기에 적어두었습니다.

더보기

 

성공2.

SELECT FLOOR(a.PRICE/10000)*10000 AS PRICE_GROUP, COUNT(a.PRODUCT_ID) AS PRODUCTS
FROM PRODUCT a
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

FLOOR 함수를 이용해 소수점 이하를 무조건 버립니다.

 

성공3.

SELECT a.PRICE - (a.PRICE % 10000) AS PRICE_GROUP, COUNT(a.PRODUCT_ID) AS PRODUCTS
FROM PRODUCT a
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

수학적으로 만원 이하의 값을 나머지로 계산해서 원래 값에서 뺀 후 값을 출력하는 방법입니다.

사실 이 방법으론 함수를 사용하지 않아 더 간단하긴 합니다.

 

*참고 chatGPT

없습니다.


코드에 질문이 있으시면 댓글을 달아주세요. 최대한 빠른 시일 내에 답변해드리겠습니다. 

봐주셔서 감사합니다.

728x90
반응형
LIST