Задача: Напишите SQL-запрос, чтобы найти среднюю цену продажи для каждого продукта. average_price должна быть округлена до 2 знаков после запятой.
Дано:
Таблица: Prices
(product_id, start_date, end_date) является первичным ключом для этой таблицы.
Каждая строка этой таблицы указывает цену product_id за период от start_date до end_date.
Для каждого product_id не будет двух перекрывающихся периодов. Это означает, что не будет двух пересекающихся периодов для одного и того же product_id.
Таблица: UnitsSold
Для этой таблицы нет первичного ключа, она может содержать дубликаты.
В каждой строке этой таблицы указаны дата, единицы измерения и product_id каждого проданного товара.
Решение:
SELECT p.product_id, round(SUM(p.price*u.units)/sum(u.units),2) as average_price
FROM Prices p
INNER 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
Результат:
Источник: https://leetcode.com/problems/average-selling-price/