출처
문제
USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요.문제에 대한 해석
문제에 대한 해석
-- 조건: 2022년 10월 5일에 등록
-- 조회: 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태
-- 출력: 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류
-- 정렬: 게시글ID 내림차순
풀이(MYSQL)
select board_id, writer_id, title, price,
case when status = 'SALE' then '판매중'
when status = 'RESERVED' then '예약중'
else '거래완료' end
from used_goods_board
where CREATED_DATE like '%2022-10-05%'
order by board_id desc
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: used_goods_board
- WHERE 절: CREATED_DATE 가 2022-10-05인 경우 필터링
- SELECT 절: board_id, writer_id, title, price, status가 SALE일때는 판매중, RESERVED일때는 예약중, 그 외 거래완료로 출력
- ORDER BY 절: board_id 내림차순
다른사람 풀이
SELECT BOARDID,
WRITERID,
TITLE,
PRICE,
IF(STATUS = 'SALE', '판매중', IF(STATUS = 'RESERVED', '예약중', '거래완료')) AS STATUS
FROM USEDGOODSBOARD
WHERE DATEFORMAT(CREATEDDATE, '%Y-%m-%d') = '2022-10-05'
ORDER BY BOARD_ID DESC
배운점
- case when절과 if절을 동일하게 쓸 수 있다
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] 조건에 맞는 사용자 정보 조회하기- 배운점 추가하기 (0) | 2024.01.22 |
---|---|
[문제풀이] 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2024.01.22 |
[문제풀이] 과일로 만든 아이스크림 고르기 (0) | 2024.01.19 |
[문제풀이] 없어진 기록 찾기 (0) | 2024.01.19 |
[문제풀이] 5월 식품들의 총매출 조회하기 (0) | 2024.01.19 |