SQL

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

되다 2024. 2. 13. 17:16

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

 

프로그래머스

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

programmers.co.kr

 


  • 문제
  • 소요시간 : 17분 46


  • 설계하기(접근방법) 

1. 요구 사항 정리

1) 최고 조회수 게시물

의 정보를 찾기 위해서 MAX(VIEWS) 를

서브쿼리로 받아서 VIEWS 비교연산자에 넣어준다

 

WHERW VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD))

 

2. 출력

 

컬럼

1) 파일경로

 /home/grep/src/ +

/B.BOARD_ID +

/F.FILE_ID + F.FILE_NAME + F.FILE_EXT

 

를 위해서는 먼저 JOIN을 해야한다

그 후 CONCAT 함수를 통해 다 더해준다

 

추가 처리

 

1) FILE_ID로 내림차순

 

 


  • 코드(출력)
SELECT CONCAT('/home/grep/src/', B.BOARD_ID,'/',F.FILE_ID,F.FILE_NAME, F.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD AS B
LEFT JOIN USED_GOODS_FILE AS F
ON B.BOARD_ID = F.BOARD_ID
WHERE VIEWS = (SELECT MAX(VIEWS)
      FROM USED_GOODS_BOARD)
ORDER BY F.FILE_ID DESC

  • 얻어갈 부분

1. CONCAT 함수를 배웠다. 중간에 문자열도 들어갈 수 있고, 정수와 날짜에 대해서 알아서 문자열로 변환하여 처리해준다

2. NULL값이 있는 경우 CONCAT은 전부 NULL로 반환하는데 CONCAT_WS를 사용하면 무시하고 처리해준다