[프로그래머스] SQL Lv.3 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
by Rev_예전에는 진짜 SQL 전혀 할 줄 몰랐었는데
전공 데이터베이스 수업도 진짜 야매로 배워서 말이죠 ... 🥲
이젠 2단계는 너무 쉬워서 3단계를 풀어야겠다 ...
간단한 JOIN을 활용하는 문제였다 !
-- 조회수가 가장 높은 중고거래 게시물의 첨부파일 경로 조회
-- 파일 경로는 'home/grep/src/게시글ID/파일ID파일이름.파일확장자' 형식으로 구성
SELECT '/home/grep/src/' || T2.BOARD_ID || '/' || T1.FILE_ID || T1.FILE_NAME || T1.FILE_EXT AS FILE_PATH
FROM USED_GOODS_FILE T1
LEFT OUTER JOIN USED_GOODS_BOARD T2
ON T1.BOARD_ID = T2.BOARD_ID
WHERE T2.VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD)
ORDER BY T1.FILE_ID DESC
JOIN 조건은 공통 컬럼인 BOARD_ID로 연결해주고, WHERE절에 VIEWS 컬럼의 MAX값을 사용하도록 하였다.
그리고 SELECT절에서 각 컬럼 값들을 결합해서 보여줘야 했는데, 나는 || 을 사용했다.
(오라클에서는 ||이 되는데, MySQL에서는 CONCAT 함수만 사용할 수 있다고 한다.)
-> ANSI SQL을 작성하기 위해서는 CONCAT 함수를 사용하는 것이 좋을 것 같다.
항상 집계함수를 조건에 넣을려고 하면 어떻게 쿼리를 작성해야할지 고민이 되는 것 같다.
위처럼 WHERE절에 조건을 넣을지, 아니면 처음부터 JOIN을 할 때 서브쿼리를 사용할지와 같은 ..
'PS > SQL' 카테고리의 다른 글
[프로그래머스] SQL Lv.2 - 자동차 평균 대여 기간 구하기 (1) | 2024.03.23 |
---|---|
[프로그래머스] SQL Lv.3 - 조건에 맞는 사용자 정보 조회하기 (0) | 2024.03.18 |
[프로그래머스] SQL Lv.2 - 루시와 엘라 찾기 (0) | 2024.01.29 |
[프로그래머스] SQL Lv.2 - 동명 동물 수 찾기(Oracle) (0) | 2024.01.15 |
[프로그래머스] SQL Lv.2 - 고양이와 개는 몇마리 있을까(Oracle) (1) | 2024.01.10 |
블로그의 정보
Hi Rev
Rev_