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

Eunding·2024년 2월 27일
0

SQL 고득점 Kit

목록 보기
47/62

조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/164671

문제

USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재합니다.

예시


풀이

SELECT CONCAT('/home/grep/src/',B.BOARD_ID,'/',FILE_ID,FILE_NAME,FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD A
    INNER JOIN USED_GOODS_FILE B ON A.BOARD_ID = B.BOARD_ID
WHERE VIEWS = (SELECT MAX(VIEWS)
                FROM USED_GOODS_BOARD)
ORDER BY FILE_ID DESC;
  1. BOARD_ID로 테이블 두 개를 INNER JOIN한다.
  2. WHERE 절에서 서브 쿼리로 가장 높은 조회수만 뽑고 여기서 뽑힌 조회수가 같은 게시물을 출력한다.
  3. 파일 경로 출력할 때 CONCAT 함수를 이용해 문자열을 합쳐준다.

+) FILE_PATH에서 home 앞에 / 안써줘서 틀렸다...

배운 점

CONCAT

CONCAT('프로그래머스', 'SQL', '푸는 중~')
결과 >> '프로그래머스SQL푸는 중~'

  • 문자열 합치는 함수
  • CONCAT 함수에 입력된 값은 문자형으로 변환 후 합친다.
  • 숫자와 문자가 함께 입력되어도 오류가 발생하지 않는다.
    cf) 문자열 합치는 더하기 연산자는 숫자와 문자가 함께 입력될 때 오류가 난다.

CONCAT_WS

CONCAT_WS('!!', 'SQL', 'Server', '2024')
결과 >> 'SQL!!Server!!2024'

  • CONCAT_WS("구분자", "문자열", "문자열", "문자열"...)
  • 문자열을 특정 구분자로 합칠 때 유용하게 사용할 수 있다.
  • 파이썬에서 print 뒤에 쓰는 sep 옵션이랑 똑같다.

참고 블로그

profile
안녕하세요~

0개의 댓글