일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 소프티어
- 백준
- 코딩봉사
- 백준알고리즘
- 1과목
- 프로그래머스
- 데이터베이스
- C++
- 알고리즘
- 코틀린
- 자바
- SW봉사
- softeer
- SQL
- kotlin
- 파이썬
- 문제풀이
- python
- CJ UNIT
- 시나공
- MYSQL
- java
- 회고
- 스프링
- 코딩교육봉사
- 공부일지
- programmers
- 정보처리산업기사
- 백준 알고리즘
- BFS
Archives
- Today
- Total
JIE0025
[MYSQL][lv.3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 본문
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/164671
✅ 문제
✅ 해결
이 문제는
가장 조회수가 높은 게시물과 엮인, 파일들의 파일 경로를 출력하는 문제이다.
다음과 같은 순서로 쿼리문을 짜야한다.
1) 가장 조회수가 높은 게시글을 찾는다
2) BOARD와 FILE을 BOARD_ID 기준으로 JOIN해주고,
3) CONCAT을 이용해서 문자열을 연결해, 형식에 맞게 FILE_PATH를 만들어 준다.
⏺ CONCAT(문자열, 문자열 .... 문자열N)
: 문자열을 합쳐준다.
⏺ SUB QUERY
서브쿼리는 FROM절과 WHERE절에 사용될 수 있다.
서브쿼리로 임시테이블을 만들고, 그 테이블의 값을 이용해 새롭게 처리를 할 수 있다!!
나는 조회수(VIEWS)가 가장 많은 게시물을 찾기 위해 WHERE절에 서브쿼리를 사용했다.
✍️ 조회수가 가장 많은 게시물을 찾기
2가지 방법을 이용할 수 있다.
먼저 가장 큰 조회수의 값 자체를 찾아준다.
✔️ MAX()를 이용해 가장 큰 조회수 값 찾기
SELECT MAX(VIEWS)
FROM USED_GOODS_BOARD
✔️ ORDER BY와 LIMIT를 이용해 가장 큰 조회수 값 찾기
SELECT VIEWS
FROM USED_GOODS_BOARD
ORDER BY VIEWS DESC
LIMIT 1
당연히 MAX가 훨씬 간단하지만 공부하는 입장에선 여러가지 방법을 적용해보는게 좋으니까 둘다 적었다 ㅎㅎ
✅ 최종 정답 쿼리문
SELECT CONCAT('/home/grep/src/', F.BOARD_ID, "/",F.FILE_ID,F.FILE_NAME, F.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD B
JOIN USED_GOODS_FILE F
ON B.BOARD_ID = F.BOARD_ID
WHERE VIEWS = (SELECT MAX(VIEWS)
FROM USED_GOODS_BOARD)
ORDER BY F.FILE_ID DESC
SELECT CONCAT('/home/grep/src/', F.BOARD_ID, "/",F.FILE_ID,F.FILE_NAME, F.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD B
JOIN USED_GOODS_FILE F
ON B.BOARD_ID = F.BOARD_ID
WHERE VIEWS = (SELECT VIEWS
FROM USED_GOODS_BOARD
ORDER BY VIEWS DESC
LIMIT 1)
ORDER BY F.FILE_ID DESC
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[BFS][Lv.4] 트리 트리오 중간값 - 파이썬(Python) (0) | 2023.11.03 |
---|---|
[그리디][lv.2] 귤 고르기 (Java) (1) | 2023.11.01 |
[MYSQL][lv.2] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2023.10.29 |
[MYSQL][lv.1] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.10.29 |
[다익스트라][lv.2] 배달 - 파이썬(Python) (0) | 2023.10.22 |