코딩테스트 연습 > 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만원만 남기고 나머지 자리를 다버리는 방법입니다.
가장 직관적이고 알기 쉬워서 채택했습니다.
참고한 블로그는 더보기에 적어두었습니다.
*답안 참고 블로그
[MySQL] 가격대 별 상품 개수 구하기
프로그래머스 문제 테이블 구조 테이블명: PRODUCT PRODUCT_ID : 상품ID PRODUCT_CODE : 상품코드 PRICE : 판매가 문제 PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세
velog.io
* TRUNCATE 참고
https://www.w3schools.com/sql/func_mysql_truncate.asp
MySQL TRUNCATE() Function
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
성공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
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
*FLOOR 함수 참고 블로그
https://velog.io/@donghoim/MySQL-SQL-ROUND-FLOOR-CEIL-%ED%95%A8%EC%88%98
[MySQL] SQL ROUND, FLOOR, CEIL 함수
ROUND 는 정해진 자릿수에 따라 반올림을 하는 역활을 하는 함수입니다.구하려는 소수점 자리수의 한 자리 아래의 숫자를 반올림 혹은 버림한다.반올림 여부의 값을 0 또는 생략할 경우 반올림,
velog.io
성공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
없습니다.
코드에 질문이 있으시면 댓글을 달아주세요. 최대한 빠른 시일 내에 답변해드리겠습니다.
봐주셔서 감사합니다.
'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 |