728x90
반응형
SMALL
안녕하세요! 오늘은 프로그래머스의 SQL 코딩 테스트 연습 문제 중 조회 수가 가장 많은 중고거래 게시판의 첨부파일 조회하기를 풀어보았습니다.
USED_GOODS_BOARD 및 USED_GOODS_FILE 테이블에서 조회 수가 가장 많은 중고 거래 게시물의 첨부 파일 경로를 검색하고, 첨부 파일 경로를 FILE_ID 별로 내림차순으로 정렬한 다음 파일 경로의 일부로 파일 ID, 파일 이름, 파일 확장자를 출력하는 문제입니다. 기본 파일 경로는 '/home/grep/src/'이며, 게시물 ID에 따라 디렉터리가 나뉘어야 합니다.
SELECT '/home/grep/src/' || ugf.BOARD_ID || '/' || ugf.FILE_ID || ugf.FILE_NAME || ugf.FILE_EXT AS FILE_PATH
FROM USED_GOODS_BOARD ugb
JOIN USED_GOODS_FILE ugf ON ugf.BOARD_ID = ugb.BOARD_ID
WHERE ugb.VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD)
ORDER BY ugf.FILE_ID DESC;
다음은 위 SQL 문에 대한 풀이입니다.
- SELECT: 쿼리 결과에서 검색할 열을 지정합니다.
- '/home/grep/src/' || ugf.BOARD_ID || '/' || ugf.FILE_ID || ugf.FILE_NAME || ugf.FILE_EXT AS FILE_PATH: 여러 문자열을 연결하여 파일 경로를 형성합니다. 기본 파일 경로인 '/home/grep/src/'로 시작하여 USED_GOODS_BOARD 테이블의 BOARD_ID, 슬래시 /', USED_GOODS_FILE 테이블의 FILE_ID, USED_GOODS_FILE 테이블의 FILE_NAME, USED_GOODS_FILE 테이블의 FILE_EXT가 차례로 이어집니다. 결과는 FILE_PATH로 별칭이 지정됩니다.
- FROM USED_GOODS_BOARD ugb: USED_GOODS_BOARD 테이블을 지정하고 쿼리에서 참조할 수 있도록 별칭 ugb를 할당합니다.
- JOIN USED_GOODS_FILE ugf ON ugf.BOARD_ID = ugb.BOARD_ID: 두 테이블에서 공통인 BOARD_ID 열을 기준으로 USED_GOODS_BOARD와 USED_GOODS_FILE 테이블 간에 Inner 조인을 수행합니다.
- WHERE ugb.VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD): USED_GOODS_BOARD 테이블의 조회 수 열이 USED_GOODS_BOARD 테이블의 조회 수 열의 최댓값과 같아야 한다는 조건에 따라 결과를 필터링합니다. 이렇게 하면 조회 수가 가장 높은 글만 선택됩니다.
- ORDER BY ugf.FILE_ID DESC: 내림차순으로 FILE_ID 열을 기준으로 결과의 정렬 순서를 지정합니다.

728x90
반응형
LIST
'SQL' 카테고리의 다른 글
[프로그래머스 | SQL] 조건에 맞는 사용자와 총 거래금액 조회하기 문제 풀이 (Oracle) (0) | 2023.06.14 |
---|---|
[프로그래머스 | SQL] 조건에 맞는 사용자 정보 조회하기 코드 풀이 (Oracle) (0) | 2023.06.13 |
데이터베이스, DBMS, 테이블 및 SQL에 대한 전반적인 모든 것! (1) | 2023.06.11 |
[프로그래머스 | SQL] 조건에 부합하는 중고거래 상태 조회하기 코드 풀이 (Oracle) (0) | 2023.06.10 |
[프로그래머스 | SQL] 조건에 부합하는 중고거래 댓글 조회하기 (Oracle) (1) | 2023.06.09 |