1. 자동차 평균 대여 기간 구하기
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
SELECT CAR_ID,
ROUND(AVG(DATEDIFF(END_DATE,START_DATE)+1),1) AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVERAGE_DURATION >=7
ORDER BY AVERAGE_DURATION desc, CAR_ID desc
DATEDIFF, TIMESTAMPDIFF
DATEDIFF(날짜1, 날짜2)
TIMESTAMPDIFF(단위, 날짜1, 날짜2)
- SECOND / MINUTE /HOUR
- DAY / WEEK / MONTH / QUARTER / YEAR
2. 조건에 부합하는 중고거래 상태 조회하기
USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요.
SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
CASE
WHEN STATUS = 'SALE' THEN '판매중'
WHEN STATUS = 'RESERVED' THEN '예약중'
WHEN STATUS = 'DONE' THEN '거래완료'
END AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE ='2022-10-05'
ORDER BY BOARD_ID desc
CASE문
CASE
WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
ELSE 값
END AS col명
3. 조건에 맞는 사용자 정보 조회하기
USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요.
SELECT
A.WRITER_ID,
B.NICKNAME,
CONCAT_WS(' ',B.CITY,B.STREET_ADDRESS1,B.STREET_ADDRESS2) "전체주소",
CONCAT_WS("-", SUBSTRING(B.TLNO, 1, 3), SUBSTRING(B.TLNO, 4, 4), RIGHT(B.TLNO, 4)) AS "전화번호"
FROM USED_GOODS_BOARD A JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
GROUP BY B.USER_ID
HAVING COUNT(*) >=3
ORDER BY USER_ID desc
CONCAT, CONCAT_WS - 문자열 합치기
CONCAT(문자열1,문자열2) → 문자열1 + 문자열2
CONCAT_WS(구분자, 문자열1, 문자열2) 문자열1 + 구분자 + 문자열2
SUBSTRING - 문자열 자르기
SUBSTRING(문자열, 시작위치, 길이)
다 풀었당 ✌✌

'✍ Coding Test > SQL' 카테고리의 다른 글
| [Coding Test - SQL] 프로그래머스 SQL 고득점 Kit : JOIN (0) | 2023.07.11 |
|---|---|
| [Coding Test - SQL] 프로그래머스 SQL 고득점 Kit : GROUP BY (0) | 2023.07.10 |
| [Coding Test - SQL] 프로그래머스 SQL 고득점 Kit : SELECT (0) | 2023.05.23 |