📝 Language: Oracle
1
2
3
4
5
6
7
|
SELECT TRUNC(PRICE/10000)*10000 PRICE_GROUP,
COUNT(PRODUCT_ID) PRODUCTS
FROM PRODUCT
GROUP BY TRUNC(PRICE/10000)
ORDER BY TRUNC(PRICE/10000)
;
|
🙂 확인 사항
1. PRODUCT 테이블
2. 만원 단위의 가격대 별 상품 개수 출력
3. 컬럼명 PRICE_GROUP, PRODUCTS
4. 가격대 정보는 각 구간 최소금액으로 표시
5. 가격대 기준 오름차순 정렬
😮 이 외의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
|
WITH CONDITION AS (
SELECT TRUNC(PRICE/10000)*10000 PRICE_GROUP,
COUNT(PRODUCT_ID) PRODUCTS
FROM PRODUCT
GROUP BY TRUNC(PRICE/10000)
)
SELECT PRICE_GROUP,
PRODUCTS
FROM CONDITION
ORDER BY PRICE_GROUP
;
|
- 공통 표현식 사용
1
2
3
4
5
6
7
8
9
10
|
SELECT PRICE_GROUP,
COUNT(PRICE_GROUP) AS PRODUCTS
FROM (
SELECT TRUNC(PRICE/10000)*10000 PRICE_GROUP
FROM PRODUCT
)
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
;
|
- 인라인 뷰 사용
- SELECT절에 PRODUCT_ID 대신 PRICE_GROUP으로 대체
- PRODUCT_ID는 PK이고 PRICE는 NOT NULL 조건이므로
- 🚨 Nullable한 값은 PK값을 대체할 수 없을 수도 있으므로 유의
1
2
3
4
5
6
7
8
|
SELECT(
FLOOR(PRICE / 10000) * 10000) PRICE_GROUP,
COUNT(PRODUCT_ID) PRODUCTS
FROM PRODUCT
GROUP BY (FLOOR(PRICE / 10000) * 10000)
ORDER BY PRICE_GROUP
;
|
- FLOOR 함수 사용
🔗 소스 코드
GitHub
📚 참고 자료
'Computer > Algorithm_SQL' 카테고리의 다른 글
[Algorithm_SQL] 재구매가 일어난 상품과 회원 리스트 구하기 (Success) (0) | 2023.10.06 |
---|---|
[Algorithm_SQL] 상품 별 오프라인 매출 구하기 (Success) (1) | 2023.10.04 |
[Algorithm_SQL] 카테고리 별 상품 개수 구하기 (Success) (0) | 2023.10.02 |
[Algorithm_SQL] 3월에 태어난 여성 회원 목록 출력하기 (Success) (0) | 2023.10.01 |
[Programmers] 가격이 제일 비싼 식품의 정보 출력하기 (Success) (0) | 2023.09.30 |