У меня проблема с SQL для вопроса, который у меня есть в моем назначении. У меня есть пример базы данных электронной коммерции в MySQL5.7, который выглядит следующим образом. Различные стили элементов имеют одинаковую цену, один элемент может иметь несколько стилей. Меня попросили найти среднегодовой рост цен на продукцию . У меня есть общее представление о том, как мне следует подойти к этому вопросу, но у меня проблемы с переводом на SQL-запросы.
База данных SQL:
![SQL database](https://i.stack.imgur.com/hmMn1.png)
Мой подход заключается во внутреннем объединении каждой таблицы, но Items
, а затем агрегировании с GROUP BY
ордерами itemsstyle.item
, Years
(с использованием переменной и Year(placed on)
).
Итак, у меня есть два подхода к ответу на вопрос. Одним из них является усреднение всех купленных товаров (конечно, по годам), чтобы найти среднюю цену всех товаров в этом году. Это IMO плохой подход из-за разницы в ценах в данных, и на него влияет то, сколько людей покупали товары в те годы. В любом случае, я подошел к этому,
SELECT Sum(total) / Sum(quantity) AS Average,
Year(placed_on) AS year
FROM orders AS a
INNER JOIN order_items AS b
ON a.id = b.order
GROUP BY year
Другой подход состоит в том, чтобы найти предметы, которые, казалось, покупались каждый год, а затем усреднять процентное увеличение. Вот с чем у меня сейчас проблемы.