🤷♀️ 문제
USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.
1) 2022년 10월에 작성된 게시글 2) 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일 조회 3) 댓글 작성일 기준 오름차순, 게시글 제목 기준 오름차순
ℹ️ 테이블
1. 중고거래 게시판 정보 (USED_GOODS_BOARD)
Column name | Type | Nullable |
BOARD_ID | VARCHAR(5) | FALSE |
WRITER_ID | VARCHAR(50) | FALSE |
TITLE | VARCHAR(100) | FALSE |
CONTENTS | VARCHAR(1000) | FALSE |
PRICE | NUMBER | FALSE |
CREATED_DATE | DATE | FALSE |
STATUS | VARCHAR(10) | FALSE |
VIEWS | NUMBER | FALSE |
2. 중고거래 게시판 댓글 정보 (USED_GOODS_REPLY)
ame | Type | Nullable |
REPLY_ID | VARCHAR(10) | FALSE |
BOARD_ID | VARCHAR(5) | FALSE |
WRITER_ID | VARCHAR(50) | FALSE |
CONTENTS | VARCHAR(1000) | TRUE |
CREATED_DATE | DATE | FALSE |
✅ 답안
1. MYSQL ver.
SELECT
A.TITLE /% 게시글 제목 %/
,A.BOARD_ID /% 게시글 ID %/
,B.REPLY_ID /% 댓글 ID %/
,B.WRITER_ID /% 댓글 ID %/
,B.CONTENTS /% 댓글 작성자 ID %/
,DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE /% 댓글 작성일 조회 %/
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B ON (B.BOARD_ID = A.BOARD_ID)
WHERE A.CREATED_DATE LIKE '2022-10%'
ORDER BY B.CREATED_DATE, A.TITLE
;
2. ORACLE ver.
SELECT
A.TITLE /% 게시글 제목 %/
,A.BOARD_ID /% 게시글 ID %/
,B.REPLY_ID /% 댓글 ID %/
,B.WRITER_ID /% 댓글 ID %/
,B.CONTENTS /% 댓글 작성자 ID %/
,TO_CHAR(B.CREATED_DATE, 'YYYY-MM-DD') AS CREATED_DATE /% 댓글 작성일 조회 %/
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B ON (B.BOARD_ID = A.BOARD_ID)
WHERE TO_CHAR(A.CREATED_DATE, 'YYYY-MM-DD') LIKE '2022-10%'
ORDER BY B.CREATED_DATE, A.TITLE
;
🌟 CHECK POINT
- DATE 타입 형식 변환 방법
- MYSQL ⇒ DATE_FORMATE() 함수 사용
DATE_FORMATE(날짜, 형식) : 날짜를 지정한 형식으로 출력
구분기호 역할 구분기호 역할
%Y | 4자리 년도 | %y | 2자리 년도 |
%M | 긴 월(영문) | %m | 숫자 월(두 자리) |
%b | 짧은 월(영문) | %c | 숫자 월(한 자리) |
%d | 일자(두 자리) | %e | 일자(한 자리) |
%W | 긴 요일 이름(영문) | %a | 짧은 요일 이름(영문) |
%I | 시간(12시간) | %H | 시간(24시간) |
%r | hh:mm:ss AM/PM | %T | hh:mm:SS |
%i | 분 | %S | 초 |
- ORACLE ⇒ TO_CHAR() 함수 사용
TO_CHAR(날짜, 형식) : 날짜를 지정한 형식으로 STRING 타입으로 출력
구분기호 | 역할 | 구분기호 | 역할 |
YYYY | 4자리 년도 | YY | 2자리 년도 |
MM | 숫자 월 | MON | 숫자 월 + 월 |
DAY | 요일(한글) | DY | 요일(한글 한 자리) |
D | 요일(숫자) | HH | 시간(12시간) |
HH24 | 시간(24시) | MI | 분 |
SS | 초 | AM | 오전 |
PM | 오후 |
'공부 > CodingTest' 카테고리의 다른 글
[프로그래머스/SQL] 평균 일일 대여 요금 구하기 (0) | 2023.07.17 |
---|---|
[프로그래머스/SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2023.07.16 |
[백준/2292] 벌집 (0) | 2022.11.25 |
[백준/1712] 손익분기점 (Java 11) (0) | 2022.11.21 |
[프로그래머스] 신규 아이디 추천 (0) | 2021.08.09 |