본문 바로가기

SQL/LeetCode

[SQL] Average Selling Price(LeetCode/Oracle)

안녕하세요!

 

이번 포스팅은 LeetCode에 있는 Average Selling Price 문제를 OracleDB로 풀어보려고 합니다!

 

(모든 문제는 Oracle로 풀이하겠습니다.)

 

1. 문제 링크 : https://leetcode.com/problems/average-selling-price/description/

 

2. 문제

Column name Type
product_id int
start_date date
end_date date
price int
Column name Type
product_id int
purchase_date date
units int
[문제] Write a solution to find the average selling price for each product. average_price should be rounded to 2 decimal places.

각 상품의 평균판매가격을 조회하는 문제입니다.

 

3. 제출 쿼리 및 설명

 

최종) PRODUCT 테이블과 UNITSOLD 테이블을 PRODUCT_ID 기준으로 조인합니다.

추가적인 조건으로 구매일(PURCHASE_DATE)이 START_DATE와 END_DATE 사이에 있는 가격을 기준으로 집계합니다.

상품ID 별로 그룹화해서 각 상품의 평균판매가격을 조회합니다.

SELECT P.PRODUCT_ID, ROUND(SUM(P.PRICE*U.UNITS) / SUM(U.UNITS), 2) AS AVERAGE_PRICE
FROM PRICES P, UNITSSOLD U
WHERE P.PRODUCT_ID = U.PRODUCT_ID
AND U.PURCHASE_DATE BETWEEN P.START_DATE AND P.END_DATE
GROUP BY P.PRODUCT_ID
;