728x90
반응형
코딩테스트 연습 > SELECT > 가격대 별 상품 개수 구하기
난이도: Lv.2
언어: MySQL
https://school.programmers.co.kr/learn/courses/30/lessons/131536
실패
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 함수를 이용해 소수점 이하를 무조건 버립니다.
더보기
* FLOOR 풀이 참고
https://school.programmers.co.kr/questions/42643
*FLOOR 함수 참고 블로그
https://velog.io/@donghoim/MySQL-SQL-ROUND-FLOOR-CEIL-%ED%95%A8%EC%88%98
성공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
반응형
'Study > SQL' 카테고리의 다른 글
[프로그래머스 SQL] 루시와 엘라 찾기 (0) | 2024.01.12 |
---|---|
[프로그래머스 SQL] 3월에 태어난 여성 회원 목록 출력하기 (0) | 2024.01.12 |
[프로그래머스 SQL] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.01.12 |
[프로그래머스 SQL] 진료과별 총 예약 횟수 출력하기 (0) | 2024.01.12 |
[프로그래머스 SQL] 성분으로 구분한 아이스크림 총 주문량 (0) | 2024.01.12 |