Найти в Дзене

1251. Средняя цена продажи SQL (легко)

Задача: Напишите 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
Результат:

-2

Источник: https://leetcode.com/problems/average-selling-price/