되면한다

프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 본문

코딩테스트준비/SQL

프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

haeullee 2024. 5. 6. 18:27

https://school.programmers.co.kr/learn/courses/30/lessons/164671

 

프로그래머스

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

programmers.co.kr

 

1. 문제 요약

USED_GOODS_BOARD USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성

 

2. 풀이 방법

1) 가장 높은 조회수의 BOARD_ID 뽑아내기

2) 해당 BOARD_ID의  첨부파일 경로 만들기 

 

3. 내코드

-- 코드를 입력하세요
SELECT '/home/grep/src/' || u.BOARD_ID || '/' || u.FILE_ID || u.FILE_NAME || u.FILE_EXT as FILE_PATH
    FROM USED_GOODS_FILE u,
    (
        SELECT * 
            FROM
                (SELECT a.BOARD_ID
                    FROM USED_GOODS_BOARD a
                    JOIN USED_GOODS_FILE  b
                    ON a.BOARD_ID = b.BOARD_ID
                    ORDER BY a.VIEWS DESC
                )
        WHERE ROWNUM = 1
    ) c
    WHERE u.BOARD_ID = c.BOARD_ID
    ORDER BY u.FILE_ID DESC

 

4. 남의코드

SELECT '/home/grep/src/'||c.BOARD_ID||'/'||c.FILE_ID||c.FILE_NAME|| c.FILE_EXT AS "FILE_PATH"
    FROM 
    (
        SELECT b.BOARD_ID, b.FILE_ID, b.FILE_NAME, b.FILE_EXT, RANK() OVER (ORDER BY a.VIEWS DESC) as rank 
            FROM USED_GOODS_BOARD a, 
                 USED_GOODS_FILE b
            WHERE a.BOARD_ID = b.BOARD_ID
    ) c
    WHERE c.rank = 1
    ORDER BY c.FILE_ID DESC

 

 

5. 배운 문법

||: 문자열 합치기 

Comments