OFMY (Ony for me and you)

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

코딩테스트 준비/SQL

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

선뭉 2024. 1. 26. 09:49

문제 설명

다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.

Column nameTypeNullable

 

USED_GOODS_FILE 테이블은 다음과 같으며 FILE_ID, FILE_EXT, FILE_NAME, BOARD_ID는 각각 파일 ID, 파일 확장자, 파일 이름, 게시글 ID를 의미합니다.


문제

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


내 풀이

 

1. CONCAT을 통해서 문자열과 값 합쳐주기 

https://lcs1245.tistory.com/entry/SQL-문자-합치기-쌍파이프-CONCAT

 

SQL 문자 합치기 - ||(쌍파이프) , CONCAT

SQL에서 문자를 합치는 기능에 관한 포스팅입니다 사용법은 굉장히 간단합니다 || (쌍파이프) 사용법 먼저 || (쌍파이프)는 문자(데이터)와 문자(데이터) 사이에 || 를 넣어주면 됩니다 아래와 같은

lcs1245.tistory.com

이렇게도 가능 

SELECT CONCAT(CONCAT_WS("/", "/home/grep/src", F.BOARD_ID, F.FILE_ID), F.FILE_NAME, F.FILE_EXT) AS FILE_PATH

 

 

 

 

 

3. 데이터의 최대값 가져오기

 맨처음에 Order by 하고 limit 했더니, 한 행만 출력돼서 오답처리됨.
이렇게 하면 중복된 걸 못가져옴

 

https://r-ayo.com/36

 

MAX vs MIN (최대 vs 최소) 함수를 알아보자

MAX(컬럼명) vs MIN(컬럼명) 해당 함수는 숫자만이 아닌 문자형 데이터에도 사용할 수 있다. 최대값 구하기 SELECT MAX(컬럼명) FROM 테이블; 최소값 구하기 SELECT MIN(컬럼명) FROM 테이블; USER_TABLE ID USER_NM

r-ayo.com


 

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr