사용 언어 - MYSQL
프로그래머스 LV 2) 가격대 별 상품 개수 구하기
정답
TRUNCATE, GROUP BY (정답 맞춘 여부 X)
TRUNCATE(칼럼명,자릿수) 자릿수까지만 표현하고 나머지 버리기, 자릿수 생략 불가능
TRUNCATE(PRICE,-4) : PRICE를 뒤에서부터 4개 버리기
= FLOOR(PRICE/10000)*10000 : PRICE 칼럼의 값을 10000으로 나누고 FLOOR로 소숫점 제거 후 10000을 곱하기
SELECT TRUNCATE(PRICE, -4) AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
실행순서
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
but 열 칼럼 별칭 그루핑에서 사용 가능 O
where 절은 불가능
테이블 별칭은 where 절 사용 가능
+ SELECT 문에 CASE ~ END 활용하는 방법
-- CASE ~ END 활용
SELECT CASE WHEN (0 < PRICE) AND (PRICE < 10000) then 0
WHEN (10000 <= PRICE) and (PRICE < 20000) then 10000
WHEN (20000 <= PRICE) and (PRICE < 30000) then 20000
WHEN (30000 <= PRICE) and (PRICE < 40000) then 30000
WHEN (40000 <= PRICE) and (PRICE < 50000) then 40000
WHEN (50000 <= PRICE) and (PRICE < 60000) then 50000
WHEN (60000 <= PRICE) and (PRICE < 70000) then 60000
WHEN (70000 <= PRICE) and (PRICE < 80000) then 70000
WHEN (80000 <= PRICE) and (PRICE < 90000) then 80000
END AS PRICE_GROUP, count(*)
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
CASE
WHEN 조건
THEN '반환 값'
ELSE '나머지 경우 반환 값'
END
레퍼런스
- 정답 깃허브
'Stay Hungry Stay Foolish > SQL' 카테고리의 다른 글
[MYSQL] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2023.06.18 |
---|---|
[MYSQL] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2023.06.18 |
[MYSQL] 입양 시각 구하기(1) (0) | 2023.06.18 |
[MYSQL] 동명 동물 수 찾기 (0) | 2023.06.18 |
[MYSQL] 고양이와 개는 몇 마리 있을까 (0) | 2023.06.18 |
댓글