SQL

[프로그래머스 | SQL] 조회 수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 해석 (Oracle)

DSDiary 2023. 6. 12. 20:16
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