사용 언어 - MYSQL
프로그래머스 LV 2) 가격대 별 상품 개수 구하기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
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 절 사용 가능
[MYSQL] 별칭(ALIAS)이란? feat.주의사항
별칭(ALIAS)은 칼럼, 테이블, 서브 쿼리, where절 등에 내가 원하는 이름(별칭)을 붙여주는 것으로 접근이 쉬워집니다. 예약어는 AS 1. 칼럼(column)에 별칭 사용하기 -- mem_id, addr 두 가지 칼럼(열)의 이
wnwa.tistory.com
+ 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
레퍼런스
- 정답 깃허브
GitHub - yyeongeun/codingtest: 코딩테스트 공부
코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.
github.com
'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 |
댓글