출처
문제
USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.
문제에 대한 해석
1. 테이블: USED_GOODS_BOARD와 USED_GOODS_USER 조인
2. 조건: 거래완료, 총 거래금액 70만원 이상
3. 조회: 회원 ID, 닉네임, 총거래금액
4. 정렬: 총거래금액 오름차순
풀이(MYSQL)
select u.user_id, u.nickname, sum(b.price)
from used_goods_board as b, used_goods_user as u
where b.writer_id = u.user_id
and b.status = 'done'
group by u.user_id
having sum(b.price)>=700000
order by sum(b.price)
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: used_goods_board 와 used_goods_user 조인
- WHERE 절: user_id가 같고, status가 'done'인 경우 필터링
- GROUP BY 절: user_id별로 그룹화 하여
- HAVING 절: 그룹화된 유저의 price합계가 700000가 넘는 경우
- SELECT 절: 아이디, 닉네임, 합계가격 조회
- ORDER BY 절: sum(b.price)오름차순
출처
문제
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
문제에 대한 해석
1. 조회: 만단위로 구분하여 가격세그먼트 제작, 새그먼트별 적용되는 상품 개수
2. 그룹: 세그먼트 별 그룹화
풀이(MYSQL)
select case when price between 0 and 9999 then 0
when price between 10000 and 19999 then 10000
when price between 20000 and 29999 then 20000
when price between 30000 and 39999 then 30000
when price between 40000 and 49999 then 40000
when price between 50000 and 59999 then 50000
when price between 60000 and 69999 then 60000
when price between 70000 and 79999 then 70000
when price between 80000 and 89999 then 80000
else 90000 end as PRICE_GROUP, count(1) as PRODUCTS
from product
group by PRICE_GROUP
order by PRICE_GROUP
다른사람 풀이
SELECT (price - (price % 10000)) PRICE_GROUP, COUNT(*) AS PRODUCTS
FROM product
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;
배운점
- select 10/3 -> 몫(정수)
- select floor(10/3) -> 몫(씰수)
- select 10 % 3 -> 나머지
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] 5월 식품들의 총매출 조회하기 (0) | 2024.01.19 |
---|---|
[문제풀이] 즐겨찾기가 가장 많은 식당 정보 출력하기-window(?) (1) | 2024.01.11 |
[문제풀이] 대여 기록이 존재하는 자동차 리스트 구하기/ 3월에 태어난 여성 회원 목록 출력하기 (1) | 2024.01.10 |
[문제풀이] SQL 개인과제 (고급 1) (0) | 2024.01.09 |
[문제풀이] 조건에 맞는 도서 리스트 출력하기/ 평균 일일 대여 요금 구하기 (0) | 2024.01.09 |