프로그래머스 문제
https://school.programmers.co.kr/learn/courses/30/lessons/164671
풀이
https://school.programmers.co.kr/questions/74836
-- 풀이 쿼리
-- 파일경로 : /home/grep/src/BOARD_ID
-- 파일 이름 : 파일ID, 파일이름, 파일확장자로 구성됨
-- 조회수가 가장 높은 게시물은 유일함.
SELECT CONCAT('/home/grep/src/', BOARD_ID, '/', FILE_ID, FILE_NAME, FILE_EXT) AS FILE_PATH
FROM USED_GOODS_FILE
WHERE BOARD_ID = (
SELECT BOARD_ID
FROM USED_GOODS_BOARD
ORDER BY VIEWS DESC
LIMIT 1
)
ORDER BY FILE_ID DESC
- 주의사항
=> 조회수가 가장 높은 게시물은 유일하지만, 게시물에 첨부된 파일은 유일하지 않다.
=> 그러므로 BOARD_ID를 찾는 쿼리를 메인 쿼리에 두면 안 된다. LIMIT 1이라는 조건이 걸려 있으므로 해당 게시물의 모든 파일을 다 가져오지 못할 수 있기 때문.
위의 주의사항만 잘 고려하면 어려운 문제는 아니다. JOIN을 써도 되고, 안 쓰고 위의 쿼리처럼 풀어도 된다.
'코딩테스트 > SQL - 프로그래머스' 카테고리의 다른 글
SQL 고득점 kit(String, Date) - 오랜 기간 보호한 동물(2) (1) | 2024.04.07 |
---|---|
SQL 고득점 kit(String, Date) - 조건에 맞는 사용자 정보 조회하기 (0) | 2024.04.04 |
연도별 대장균 크기의 편차 구하기 (0) | 2024.03.30 |
우유와 요거트가 담긴 장바구니 (0) | 2024.03.30 |
특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2024.03.23 |