Welcome! Everything is fine.

[프로그래머스/Lv.3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 - MySQL

개발곰발 2024. 4. 12.
728x90

📌 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📌 제출한 오답

처음 작성한 답안은 Unknown column 'VIEWS' in 'having clause' 라는 오류가 났다.

SELECT CONCAT("/home/grep/src/", BOARD_ID, "/", FILE_ID, FILE_NAME, FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD JOIN USED_GOODS_FILE USING(BOARD_ID)
GROUP BY FILE_ID
HAVING VIEWS = MAX(VIEWS)
ORDER BY FILE_ID DESC

📌 정답

찾아보니 서브쿼리로 푼 사람들이 많아 서브쿼리를 이용해 풀었다. 문자열을 합치는 함수 CONCAT으로 파일 경로를 만들었고, WHERE절에서 USED_GOODS_BOARD 테이블의 BOARD_ID 중 VIEWS가 가장 높은 BOARD_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