https://leetcode.com/problems/average-selling-price/description/ | Easy |
---|
Даны две таблицы:
Prices
column name | type |
---|---|
product_id | int |
start_date | date |
end_date | date |
price | int |
UnitsSold
column name | type |
---|---|
product_id | int |
purchase_date | date |
units | int |
Каждая запись в Prices
указывает цену price
для product_id
в период от start_date
до end_date
включительно, а каждая запись в UnitsSold
показывает, сколько units
единиц product_id
было продано в день purchase_date
. Таблицы могут содержать дубликаты. Напишите запрос, который для каждого product_id
вычисляет среднюю цену продажи, равную сумме price * units
, делённой на общее число проданных units
, округлённую до двух знаков после запятой. Результат вернуть в любом порядке.
SELECT
p.product_id,
IFNULL(
ROUND(
SUM(p.price * u.units) / SUM(u.units),
2
),
0
) 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
ORDER BY p.product_id;