inblog logo
|
An's Blog
    코딩테스트SQL

    [코딩테스트] 29. 조건에 맞는 사용자와 총 거래금액 조회하기

    윤설안's avatar
    윤설안
    Apr 15, 2025
    [코딩테스트] 29. 조건에 맞는 사용자와 총 거래금액 조회하기
    Contents
    테이블 index문제예시풀이

    테이블 index

    📌

    USED_GOODS_BOARD 

    Column name
    Type
    Nullable
    BOARD_ID
    VARCHAR(5)
    FALSE
    WRITER_ID
    VARCHAR(50)
    FALSE
    TITLE
    VARCHAR(100)
    FALSE
    CONTENTS
    VARCHAR(1000)
    FALSE
    PRICE
    NUMBER
    FALSE
    CREATED_DATE
    DATE
    FALSE
    STATUS
    VARCHAR(10)
    FALSE
    VIEWS
    NUMBER
    FALSE

    USED_GOODS_USER 

    Column name
    Type
    Nullable
    USER_ID
    VARCHAR(50)
    FALSE
    NICKNAME
    VARCHAR(100)
    FALSE
    CITY
    VARCHAR(100)
    FALSE
    STREET_ADDRESS1
    VARCHAR(100)
    FALSE
    STREET_ADDRESS2
    VARCHAR(100)
    TRUE
    TLNO
    VARCHAR(20)
    FALSE

    문제

    💡
    USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.

    예시

    notion image

    풀이

    ❗
    판매된 상품만 출력
    select WRITER_ID, PRICE, STATUS, VIEWS from USED_GOODS_BOARD where STATUS = "DONE"
    USED_GOODS_USER의 닉네임이 필요하기 때문에 inner join
    select * from USED_GOODS_BOARD bt INNER join USED_GOODS_USER ut ON bt.WRITER_ID = ut.USER_ID where STATUS = "DONE"
    WRITER_ID가 같으면 price를 합쳐서 70만원이 넘는 유저를 찾아야하기 때문에 WRITER_ID로 그룹핑
    select * from USED_GOODS_BOARD bt INNER join USED_GOODS_USER ut ON bt.WRITER_ID = ut.USER_ID where STATUS = "DONE" group by WRITER_ID
    각 그룹의 price를 더하여 별칭을 TOTAL_SALES로 주었고, 별칭으로 조건을 걸고 싶기 때문에 having을 사용하였다.
    select *, sum(price) TOTAL_SALES from USED_GOODS_BOARD bt INNER join USED_GOODS_USER ut ON bt.WRITER_ID = ut.USER_ID where STATUS = "DONE" group by WRITER_ID having TOTAL_SALES >= 700000;
    이후에 order by를 이용하여 오름차순으로 정렬과 필요한 데이터만 뽑아주었다.
    select ut.USER_ID, ut.nickname, sum(price) TOTAL_SALES from USED_GOODS_BOARD bt INNER join USED_GOODS_USER ut ON bt.WRITER_ID = ut.USER_ID where STATUS = "DONE" group by WRITER_ID having TOTAL_SALES >= 700000 order by TOTAL_SALES
     
    Share article
    Contents
    테이블 index문제예시풀이

    An's Blog

    RSS·Powered by Inblog