문제 사이트

https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

문제

USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요.

image.png

풀이

SELECT BOARD_ID,
       WRITER_ID,
       TITLE,
       PRICE,
       CASE WHEN STATUS = 'SALE' THEN '판매중'
            WHEN STATUS = 'RESERVED' THEN '예약중'
            ELSE '거래완료' END AS STATUS
FROM USED_GOODS_BOARD 
WHERE CREATED_DATE LIKE '2022-10-05%'
ORDER BY BOARD_ID DESC

문제

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.

image.png

자동차 별 평균 대여 기간은

풀이

SELECT
    car_id,
    ROUND(AVG(DATEDIFF(end_date, start_date)+1),1) average_duration
FROM 
    car_rental_company_rental_history
GROUP BY
    1
HAVING
    average_duration >= 7
ORDER BY
    2 DESC,
    1 DESC;