코딩테스트/programming_SQL
[SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기_164671
prometedor
2023. 10. 31. 11:06
CONCAT, MAX , 서브쿼리 이용하기
CONCAT(컬럼1, 컬럼2, 컬럼3)
MAX(컬럼)
CONCAT : 문자열을 이어서 출력하고싶을 때 사용
MAX : 해당 컬럼의 최댓값을 조회할 때 사용
https://school.programmers.co.kr/learn/courses/30/lessons/164671
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr



SELECT CONCAT('/home/grep/src/', b.BOARD_ID, '/', b.FILE_ID, b.FILE_NAME, b.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD a
JOIN USED_GOODS_FILE b
ON a.BOARD_ID = b.BOARD_ID
WHERE a.VIEWS IN (SELECT MAX(VIEWS)
FROM USED_GOODS_BOARD)
ORDER BY b.FILE_ID DESC;
1. USED_GOODS_BOARD 테이블과 USED_GOODS_FILE 테이블을 BOARD_ID 열을 기준으로 JOIN 하도록 한다.
2. 주요 조건은 USED_GOODS_BOARD 테이블의 VIEWS 열이 서브쿼리에서 계산한 최대값과 같은 행을 선택하는 것이다.
서브쿼리는 SELECT MAX(VIEWS) FROM USED_GOODS_BOARD를 사용하여 최대 VIEWS 값을 검색한다.
3. CONCAT 함수를 사용하여 /home/grep/src/에 BOARD_ID, FILE_ID, FILE_NAME, 그리고 FILE_EXT 값을 조합하여 파일경로를 생성한다.
4. 결과를 USED_GOODS_FILE 테이블의 FILE_ID를 기준으로 내림차순으로 정렬한다.
=> 쿼리의 결과는 USED_GOODS_BOARD 테이블에서 VIEWS 열 값이 최대값인 행과 관련된 파일의 경로가 됩니다.