В мире анализа данных SQL (язык структурированных запросов) играет жизненно важную роль в извлечении значимой информации из больших наборов данных. Одной из распространенных задач при анализе продаж продукции является расчет общего количества проданных товаров и общего дохода, полученного от каждого продукта. В этой статье мы рассмотрим несколько методов достижения этой цели с помощью SQL, а также примеры кода и разговорные объяснения.
Метод 1: использование функции SUM() и предложения GROUP BY
Функция SUM() — это мощная агрегатная функция SQL, которая позволяет нам вычислить сумму определенного столбца. В этом случае мы можем использовать его для суммирования проданного количества и цены за единицу каждого продукта. Предложение GROUP BY используется для группировки результатов по названию продукта и SKU (единице учета запасов) для получения желаемого результата.
SELECT product_name,
product_sku,
SUM(quantity) AS quantity_sold,
SUM(unit_price) AS total_revenue
FROM sales_table
GROUP BY product_name, product_sku;
Метод 2: использование подзапросов
Другой способ добиться того же результата — использовать подзапросы. Мы можем сначала рассчитать сумму количества и цены за единицу каждого продукта в отдельных подзапросах, а затем объединить результаты на основе названия продукта и SKU.
SELECT p.product_name,
p.product_sku,
q.quantity_sold,
r.total_revenue
FROM products_table p
JOIN (
SELECT product_name,
product_sku,
SUM(quantity) AS quantity_sold
FROM sales_table
GROUP BY product_name, product_sku
) q ON p.product_name = q.product_name AND p.product_sku = q.product_sku
JOIN (
SELECT product_name,
product_sku,
SUM(unit_price) AS total_revenue
FROM sales_table
GROUP BY product_name, product_sku
) r ON p.product_name = r.product_name AND p.product_sku = r.product_sku;
Метод 3: использование CTE (общее табличное выражение)
CTE — это мощная функция SQL, которая позволяет нам определять временные наборы результатов, делая сложные запросы более читабельными. Мы можем использовать CTE для расчета суммы проданного количества и цены за единицу каждого продукта, а затем объединить CTE с таблицей продуктов.
WITH product_sales AS (
SELECT product_name,
product_sku,
SUM(quantity) AS quantity_sold,
SUM(unit_price) AS total_revenue
FROM sales_table
GROUP BY product_name, product_sku
)
SELECT p.product_name,
p.product_sku,
ps.quantity_sold,
ps.total_revenue
FROM products_table p
JOIN product_sales ps ON p.product_name = ps.product_name AND p.product_sku = ps.product_sku;
В этой статье мы рассмотрели три различных метода расчета общего объема продаж и общего дохода, полученного от каждого продукта при анализе продаж. Мы использовали функцию SQL SUM() с предложением GROUP BY, подзапросами и CTE для достижения желаемых результатов. Используя эти методы, вы сможете улучшить свои навыки работы с SQL и выполнять эффективный анализ данных о продажах продуктов.