관리 메뉴

물 만날 물고기

[프로그래머스/SQL] - (1) 조건에 부합하는 중고거래 댓글 조회하기 본문

DB & SQL/프로그래머스

[프로그래머스/SQL] - (1) 조건에 부합하는 중고거래 댓글 조회하기

Lung Fish 2023. 6. 21. 18:57

🔍 예상 검색어

더보기

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

# 프로그래머스

# SQL


해당 포스팅은 프로그래머스 SQL  "조건에 부합하는 중고거래 댓글 조회하기"  문제 풀이내용을 정리하였습니다.

 

 

문제

 

코딩테스트 연습 - 조건에 부합하는 중고거래 댓글 조회하기 | 프로그래머스 스쿨

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

▶ 정답(1) : MONTH(B.CREATED_DATE) = 10

-- 코드를 입력하세요
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, 
DATE_FORMAT(R.CREATED_DATE,"%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B  
INNER JOIN USED_GOODS_REPLY AS R 
ON B.BOARD_ID = R.BOARD_ID 
WHERE MONTH(B.CREATED_DATE) = 10
ORDER BY R.CREATED_DATE ASC,  B.TITLE ASC;

 

▶ 정답(2) : WHERE B.CREATED_DATE like '2022-10%'

-- 코드를 입력하세요
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, 
DATE_FORMAT(R.CREATED_DATE,"%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B  
INNER JOIN USED_GOODS_REPLY AS R 
ON B.BOARD_ID = R.BOARD_ID 
-- WHERE MONTH(B.CREATED_DATE) = 10
WHERE B.CREATED_DATE like '2022-10%'
ORDER BY R.CREATED_DATE ASC,  B.TITLE ASC;

 

▶ 정답(3) : WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'

-- 코드를 입력하세요
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, 
DATE_FORMAT(R.CREATED_DATE,"%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B  
INNER JOIN USED_GOODS_REPLY AS R 
ON B.BOARD_ID = R.BOARD_ID 
-- WHERE MONTH(B.CREATED_DATE) = 10
-- WHERE B.CREATED_DATE like '2022-10%'
WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'
ORDER BY R.CREATED_DATE ASC,  B.TITLE ASC;

 

▶ 정답(4) : WHERE  SUBSTR(B.CREATED_DATE,1,7) = '2022-10'

-- 코드를 입력하세요
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, 
DATE_FORMAT(R.CREATED_DATE,"%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B  
INNER JOIN USED_GOODS_REPLY AS R 
ON B.BOARD_ID = R.BOARD_ID 
-- WHERE MONTH(B.CREATED_DATE) = 10
-- WHERE B.CREATED_DATE like '2022-10%'
-- WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'
WHERE  SUBSTR(B.CREATED_DATE,1,7) = '2022-10'
ORDER BY R.CREATED_DATE ASC,  B.TITLE ASC;

 

▶ 정답(5) : WHERE B.CREATED_DATE BETWEEN ('2022-10-01') AND ('2022-10-31')

-- 코드를 입력하세요

SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, 
DATE_FORMAT(R.CREATED_DATE,"%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B  
INNER JOIN USED_GOODS_REPLY AS R 
ON B.BOARD_ID = R.BOARD_ID 
-- WHERE MONTH(B.CREATED_DATE) = 10
-- WHERE B.CREATED_DATE like '2022-10%'
-- WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'
-- WHERE SUBSTR(B.CREATED_DATE,1,7) = '2022-10'
WHERE B.CREATED_DATE BETWEEN ('2022-10-01') AND ('2022-10-31')
ORDER BY R.CREATED_DATE ASC,  B.TITLE ASC;

 

▶ 총평

해당 문제에서는 INNER JOIN 방법, DATE_FORMAT 함수, 정렬 조건이 2개 이상일 때 처리 방법에 대해 확인이 필요하였고, 2022년 10월에 작성된 방법을 조회하는 조건에서 다양한 방법이 사용될 수 있음을 확인하였습니다. 

 

 


-- 코드를 입력하세요

/*
USED_GOODS_BOARD AS B
B.BOARD_ID, B.WRITER_ID, B.TITLE, B.CONTENTS, B.PRICE, B.CREATED_DATE, B.STATUS, B.VIEWS
*/

/*
USED_GOODS_REPLY AS R
R.REPLY_ID, R.BOARD_ID, R.WRITER_ID, R.CONTENTS, R.CREATED_DATE
*/

/*
RESULT 
B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID,  R.CONTENTS, R.CREATED_DATE
*/


/* 문제 분석
(1) 결과 컬럼 : B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID,  R.CONTENTS, R.CREATED_DATE
(2) 조회 기준 :  2022년 10월 작성된 게시글 
(3) 댓글 작성일을 기준으로 오름차순  : R.CREATED_DATE
(4) 게시글 제목 기준으로 오름차순 : B.TITLE
(5) 주의사항 : CREATED_DATE 포맷
*/


SELECT 
B.TITLE, 
B.BOARD_ID, 
R.REPLY_ID, 
R.WRITER_ID,  
R.CONTENTS,  
DATE_FORMAT(R.CREATED_DATE, "%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B
INNER JOIN USED_GOODS_REPLY AS R
ON B.BOARD_ID = R.BOARD_ID
WHERE DATE_FORMAT(B.CREATED_DATE, "%Y-%m") = "2022-10"
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC

 

 

 

 

▼ 참고자료

No. 내용 비고
1 [프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기.MySQL ai_ku.log
2 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기 JJ
3 [SQL] 조건에 부합하는 중고거래 댓글 조회하기(프로그래머스/MySQL/Level 1) BigData + Data Analyst + Daily
4 [프로그래머스]조건에 부합하는 중고거래 댓글 조회하기(LV.1) :: 크게 될 사람 크게 될 사람 크게 될 사람

 


▼ 복습/히스토리

더보기
No. 복습일 비고
1 2023년 06월 24일 - 09시 12분 -
2    
3    
4    
5    

- 작성코드

SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, "%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B
JOIN USED_GOODS_REPLY AS R 
ON B.BOARD_ID = R.BOARD_ID
WHERE DATE_FORMAT(B.CREATED_DATE, "%Y-%m") = "2022-10"
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC;