Contents
내가 작성한 쿼리

각 제품의 평균 판매 가격을 구하기 위한 솔루션을 작성합니다.
'average_price'은 소수점 2자리로 반올림해야 합니다.
제품에 판매 단위가 없는 경우 평균 판매 가격은 0으로 가정합니다.
결과 테이블을 순서에 상관없이 반환하세요.
내가 작성한 쿼리
Oracle
SELECT
p.product_id,
ROUND(NVL(SUM(p.price * u.units) / SUM(u.units), 0), 2) AS average_price
FROM Prices p
LEFT JOIN UnitsSold u
ON p.product_id = u.product_id
AND u.purchase_date BETWEEN p.start_date AND p.end_date
GROUP BY p.product_id;
MySQL
SELECT
p.product_id,
-- IFNULL로 나눌 값이 없을 경우 0 처리
ROUND(IFNULL(SUM(p.price * u.units) / SUM(u.units), 0), 2) AS average_price
FROM Prices p
LEFT JOIN UnitsSold u
ON p.product_id = u.product_id
AND u.purchase_date BETWEEN p.start_date AND p.end_date -- 기간 일치 조건
GROUP BY p.product_id;
차이점
NULL
처리 함수의 차이
Share article