Notice
Recent Posts
Link
Tags
- DI
- jpa
- sql
- 스프링부트
- AWS
- PYTHON
- spring boot
- 1차원 배열
- 자바
- 문자열
- select
- 데이터베이스
- ORM
- Git
- Django
- mysql
- join
- session
- spring mvc
- Docker
- nginx
- springboot
- java
- 스프링
- string
- spring security 6
- 프로그래머스
- @transactional
- spring
- SSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Archives
개발하는 자몽
[프로그래머스] GROUP BY > 가격대 별 상품 개수 구하기 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131530
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해 주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해 주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해 주세요. 결과는 가격대를 기준으로 오름차순 정렬해 주세요.
풀이
- 만원 단위의 가격대 별로 상품 개수 출력
- 각 컬럼명은 PRICE_GROUP, PRODUCTS
- 가격대 정보는 각 구간의 최소금액으로 표시
- 가격대를 기준으로 오름차순 정렬
코드 1
SELECT TRUNCATE(PRICE, -4) AS PRICE_GROUP, COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE;
- `TRUNCATE`를 이용해서 자릿수 버림. 이후 `PRICE_GROUP`으로 별칭 설정
- `TRUNCATE` 사용 시 반드시 버릴 자릿수를 지정해야 함
- `PRICE_GROUP`으로 그룹핑하여 가격대 별로 묶음.
- `COUNT`를 사용하여 상품 개수 계수. 이후 `PRODUCTS`로 별칭 설정
- 가격대인 `PRICE_GROUP`를 기준으로 오름차순 정렬
코드 2
SELECT FLOOR(PRICE/10000)*10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE;
- `PRICE`를 단위에 맞춰서 나눈 뒤 소수점을 없애기 위해 `FLOOR` 사용. 가격대 정보는 각 구간의 최소 금액으로 나타내어야 하므로 10000 곱함 (몇천 원대인 경우 0이므로 10000을 곱해도 그대로 0)
- 이후 코드 1 풀이와 동일
'SQL' 카테고리의 다른 글
[프로그래머스] JOIN > 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2024.02.17 |
---|---|
[프로그래머스] JOIN > 그룹별 조건에 맞는 식당 목록 출력하기 (1) | 2024.02.11 |
[프로그래머스] JOIN > 오랜 기간 보호한 동물(1) (0) | 2024.02.01 |
[프로그래머스] JOIN > 있었는데요 없었습니다 (0) | 2024.01.31 |
[프로그래머스] JOIN > 없어진 기록 찾기 (1) | 2024.01.29 |
Comments