정보
Lv.2
분류 : GROUP BY
문제
풀이
SELECT FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP
, COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY FLOOR(PRICE / 10000) * 10000
ORDER BY PRICE_GROUP;
풀이 후기
문제 보자마자 제일 생각났던게 CASE WHEN THEN 방법이였다.
하지만 코드도 길어지고 제대로 풀리지도 않는 느낌이여서 다른 분들이 푼 문제를 참고했다.
만약 PRICE가 21000이라고 하면 나누기 10000을 해서 한 값(2.1)을 FLOOR 함수로 소수점을 내림해버린다.
그럼 값은 2가 된다.
2를 다시 10000을 곱셈하면 20000 이라는 값이 PRICE_GROUP이라는 별칭으로 출력된다.
COUNT를 통해 PRICE_GROUP의 행 수를 구한다.
그룹을 지을 기준은 PRICE_GROUP.
GROUP BY는 SELECT 보다 빨리 실행되기 때문에 별칭을 적으면 오류가 발생한다.
'💡문제 풀이 > 프로그래머스 - Oracle' 카테고리의 다른 글
재구매가 일어난 상품과 회원 리스트 구하기 / 131536 (0) | 2023.11.03 |
---|---|
상품 별 오프라인 매출 구하기 / 131533 (0) | 2023.11.03 |
카테고리 별 상품 개수 구하기 / 131529 (0) | 2023.11.03 |
3월에 태어난 여성 회원 목록 출력하기 / 131120 (0) | 2023.11.02 |
가격이 제일 비싼 식품의 정보 출력하기 / 131115 (0) | 2023.11.02 |