Запрос Q027. Отчет о продажах по категориям. То есть
генерируется таблица, в которой будут названия категорий товаров, общая
сумма, на которую проданы товары данных категорий, и средняя сумма
продаж. Функция ROUND использована для округления среднего значения до
сотой доли (второй знак после разделителя целой и дробной частей):
SELECT c.title, SUM(amount*price) AS outcome_sum, ROUND(AVG(amount*price),2) AS outcome_sum_avg FROM (m_product AS a INNER JOIN m_outcome AS b ON a.id=b.product_id) INNER JOIN m_category AS c ON a.ctgry_id=c.id GROUP BY c.title;
Пример для MySQL
Запрос Q027. Выводится отчет о продажах по
категориям. То есть генерируется таблица, в которой будут названия
категорий товаров, общая сумма, на которую проданы товары данных
категорий, и средняя сумма продаж. Функция ROUND использована для
округления среднего значения до сотой доли (второй знак после
разделителя целой и дробной частей):
SELECT c.title, SUM(amount*price) AS outcome_sum, ROUND(AVG(amount*price),2) AS outcome_sum_avg FROM m_product AS a INNER JOIN m_outcome AS b ON a.id=b.product_id INNER JOIN m_category AS c ON a.ctgry_id=c.id GROUP BY c.title;
Пример для MS SQL Server
Запрос Q027. Отчет о продажах по категориям. То есть
генерируется таблица, в которой будут названия категорий товаров, общая
сумма, на которую проданы товары данных категорий, и средняя сумма
продаж. Функция ROUND использована для округления среднего значения до
сотой доли (второй знак после разделителя целой и дробной частей):
SELECT c.title, SUM(amount*price) AS outcome_sum,
ROUND(AVG(amount*price),2) AS outcome_sum_avg
FROM m_product AS a
INNER JOIN m_outcome AS b
ON a.id=b.product_id
INNER JOIN m_category AS c
ON a.ctgry_id=c.id
GROUP BY c.title;