전공/프로그래머스

(SQL) 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

yha97 2023. 10. 7. 11:46

날짜 : 2023. 10. 07

사용 언어 : oracle

 

문제

https://school.programmers.co.kr/learn/courses/30/lessons/164671?language=oracle

 

코드

-- 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회
-- 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬
-- 기본적인 파일경로는 /home/grep/src/ -> 기본경로/게시글ID/파일ID/파일이름/확장자
-- 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력

SELECT '/home/grep/src/'||B.BOARD_ID||'/'||B.FILE_ID||B.FILE_NAME||B.FILE_EXT AS FILE_PATH
FROM (
    SELECT *
    FROM (
        SELECT *
        FROM USED_GOODS_BOARD
        ORDER BY VIEWS DESC
         )
    WHERE ROWNUM < 2) A JOIN
    USED_GOODS_FILE B ON A.BOARD_ID = B.BOARD_ID
ORDER BY B.FILE_ID DESC
;

 

 

풀이

- 서브쿼리를 사용해 조회수가 가장 많은 중고거래 게시물의 테이블을 추출한다.

- 그 다음 USED_GOODS_FILE 테이블과 조인

- SELECT문에서는 각 조건에 맞추어 문자열을 붙여나간다.

- 마지막에 FILE_ID 내림차순으로 정렬하면 완료

 

 

알게된 점

- 리뷰 하나에 여러개의 파일이 있고, 거기서 정렬 조건이 있다는 것을 간과했었다.

 

 

참고 사이트