CONCAT, MAX , 서브쿼리 이용하기
CONCAT(컬럼1, 컬럼2, 컬럼3)
MAX(컬럼)
CONCAT : 문자열을 이어서 출력하고싶을 때 사용
MAX : 해당 컬럼의 최댓값을 조회할 때 사용
https://school.programmers.co.kr/learn/courses/30/lessons/164671
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 열 값이 최대값인 행과 관련된 파일의 경로가 됩니다.
'코딩테스트 > programming_SQL' 카테고리의 다른 글
[SQL] 보호소에서 중성화한 동물_59045 (1) | 2023.11.17 |
---|---|
[SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기_151139 (0) | 2023.11.12 |
[SQL] 프로그래머스_헤비 유저가 소유한 장소_77487 (0) | 2023.10.29 |
[SQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기_157340 (0) | 2023.10.29 |
[SQL] 프로그래머스_조건에 맞는 사용자 정보 조회하기_164670 (0) | 2023.10.29 |