[프로그래머스 Lv. 3] 조건에 맞는 사용자 정보 조회하기

너구리로소이다·2023년 3월 14일
0

programmers-SQL

목록 보기
15/76

코딩테스트 연습 - 조건에 맞는 사용자 정보 조회하기

문제 설명

다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다.
USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.

Column nameTypeNullable
BOARD_IDVARCHAR(5)FALSE
WRITER_IDVARCHAR(50)FALSE
TITLEVARCHAR(100)FALSE
CONTENTSVARCHAR(1000)FALSE
PRICENUMBERFALSE
CREATED_DATEDATEFALSE
STATUSVARCHAR(10)FALSE
VIEWSNUMBERFALSE

USED_GOODS_USER 테이블은 다음과 같으며 USER_ID, NICKNAME, CITY, STREET_ADDRESS1, STREET_ADDRESS2, TLNO는 각각 회원 ID, 닉네임, 시, 도로명 주소, 상세 주소, 전화번호를 를 의미합니다.

Column nameTypeNullable
USER_IDVARCHAR(50)FALSE
NICKANMEVARCHAR(100)FALSE
CITYVARCHAR(100)FALSE
STREET_ADDRESS1VARCHAR(100)FALSE
STREET_ADDRESS2VARCHAR(100)TRUE
TLNOVARCHAR(20)FALSE

문제

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

풀이

SELECT UGU.USER_ID, UGU.NICKNAME, UGB.TOT_PRICE
FROM USED_GOODS_USER UGU
INNER JOIN (SELECT WRITER_ID, SUM(PRICE) AS TOT_PRICE
FROM USED_GOODS_BOARD
WHERE STATUS = 'DONE'
GROUP BY WRITER_ID
HAVING SUM(PRICE) >= 700000) UGB
ON UGU.USER_ID = UGB.WRITER_ID
ORDER BY UGB.TOT_PRICE

1) WHERE조건에서 STATUS='DONE'(완료)인 게시글 중에 WRITER_ID로 그룹화하여 작성자의 전체 총액-SUM(PRICE)을 조회. 이때 총액이 700000원 이상 이여야 함.
2) USED_GOODS_BOARD의 WRITER_ID와 USED_GOODS_USER의 USER_ID가 같음. 이를 조인조건으로 진행.
3) 총거래금액을 기준으로 오름차순 정렬.

profile
일단 해보자 뭐든 되겠지 😄

0개의 댓글