sql_코드카타(2023.12.27)_rank over, sub query(sum)

김수경·2023년 12월 27일

코드카타

목록 보기
10/29
  1. USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재합니다.
#1개의 게시글에 여러개의 첨부파일 있는 경우로, 최대값에 해당되는 첨부파일(여러개 행)을 모두 출력해야 한다. 
#최대값 말고 rank함수를 이용
select FILE_PATH
from(
select b.board_id,
b.views,
concat('/home/grep/src/', b.board_id,'/',f.file_id,f.file_name,f.file_ext) FILE_PATH,
rank() over(order by b.views desc) rank_view
from used_goods_board b inner join used_goods_file f on b.board_id=f.board_id 
order by f.file_id desc 
) a
where rank_view= 1
  1. 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.
#같은 아이스크림이라도 공장이 다르기때문에 shipment_id가 다름
#shipment_id가 아닌 flavor로 join
#서브쿼리로 flavor 기준으로 각 테이블 주문량 sum을 먼저 해준다. 
#내림차순 후 상위 3개 자름
select flavor
from
(
SELECT j.shipment_id,
j.flavor,
sum(j.total_order) july_order,
sum(f.total_order) first_order,
sum(j.total_order+f.total_order) 'total_order'
from july j join first_half f on j.flavor=f.flavor
group by 2
order by 5 desc 
)a
limit 3 
profile
잘 하고 있는겨?

0개의 댓글