본문 바로가기

┤오답노트├/SQL_1차

DAY 3.

728x90

SQL LV1.

1. 조건에 부합하는 중고거래 댓글 조회하기

문제 USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성.

결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬

CREATED_DATE의 포맷이 예시의 포맷(YYYY-MM-DD)과 일치해야 정답처리 됩니다.

select b.title,
       b.board_id,
       r.reply_id,
       r.writer_id,
       r.contents,
       date_format(r.created_date, '%Y-%m-%d')
from used_goods_board b inner join used_goods_reply r on b.board_id=r.board_id
-- 둘 다 사용 가능
where year(b.created_date)=2022 and month(b.created_date)=10
where date_format(b.created_date, '%Y-%m') = '2022-10'
--
order by r.created_date asc,
         b.title asc

 

오답노트

JOIN - inner 로 해야 함

2022년 10월에 작성된 게시글+댓글이므로, 공통된 것만 추출해야함

그래서 where 조건은 게시물 작성일 하나만 줘도 됨

 

date_format(어떤 테이블.어떤 컬럼, '%Y-%m-%d')

%y : YY로 나옴 → %Y : YYYY로 해야 함

 

where year(b.created_date)=2022 and month(b.created_date)=10
where date_format(b.created_date, '%Y-%m') = '2022-10'

계속 오답이었던 이유: 문제에서 요구한 것은 select한 r.created_date(댓글 작성일)가 아니라, 게시글 날짜인 b.created_date라서!!!

 

2. 자동차 대여 기록에서 장기/단기 대여 구분하기

문제  CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성. 결과는 대여 기록 ID를 기준으로 내림차순 정렬.

select history_id,
       car_id,
       date_format(start_date, '%Y-%m-%d') as start_date,
       date_format(end_date, '%Y-%m-%d') as end_date,
    case
        when datediff(end_date, start_date)+1 >= 30 then '장기 대여'
        else '단기 대여' end as rent_type        
from car_rental_company_rental_history
where date_format(start_date,'%Y-%m') = '2022-09'
order by history_id desc

오답노트

date_format(어떤 테이블.어떤 컬럼, '%Y-%m-%d')

%y : YY로 나옴 → %Y : YYYY로 해야 함

where date_format(start_date, '%Y-%m') = '2022-09'로 해야 함

case 전에 쉼표 필수( , )

 

datediff(end_date - start_date) +1 >= 30

1) datediff(기준 - 뺄 값) 

    end_date에서 start_date를 빼야함 주의

2) +1을 하는 이유: 대여 시작일 당일도 포함해야 하기 때문

 

select

[tab] case

[tab][tab] when, else, end

 

728x90

'┤오답노트├ > SQL_1차' 카테고리의 다른 글

DAY 6.  (0) 2025.05.19
DAY 5.  (0) 2025.05.17
DAY 4.  (3) 2025.05.16
DAY 2.  (0) 2025.05.15
DAY 1.  (0) 2025.05.13

google.com, pub-9332256070510669, DIRECT,f08c47fec0942fa0