Как сравнить продажи продуктов по месяцам в SQL?
Ежемесячный отчет о продажах представляет состояние продаж в компании за месяц. Это помогает отделу продаж двигаться в правильном направлении. Являетесь ли вы руководителем отдела продаж или менеджером, метрики чрезвычайно важны для успеха вашей компании. Если ваши данные хранятся в базе данных, вы можете рассчитать ежемесячный отчет о продажах с помощью SQL. В этой статье мы увидим, как мы можем рассчитать ежемесячные продажи в SQL.
1. ГРУППА ПО ПРЕДЛОЖЕНИЮ
2. Агрегатные функции
Давайте сначала создадим нашу демонстрационную базу данных.
Шаг 1: Создание базы данных
Создайте новую базу данных с именем Product_details и используйте ее.
Запрос:
CREATE DATABASE Product_details; USE Product_details;
Выход:
Шаг 2: Определение таблицы
Создайте таблицу с именем «Продукты» и добавьте эти два столбца «Дата_заказа» и «Продажи».
Запрос:
CREATE Table Products ( Order_date date, Sales int);
Выход:
Шаг 3: Вставьте строки в таблицу и Вставьте эти строки в таблицу.
Запрос:
INSERT INTO Products(Order_date,Sales) VALUES("2021-01-01",20),("2021-03-02",32),("2021-02-03",45), ("2021-01-04",31),("2021-03-05",33),("2021-01-06",19), ("2021-04-07",21),("2021-03-08",10),("2021-02-09",40), ("2021-03-10",20),("2021-03-11",26),("2021-04-12",22), ("2021-04-13",10),("2021-01-14",28),("2021-03-15",15), ("2021-01-16",12),("2021-04-17",10),("2021-02-18",18), ("2021-04-19",14),("2021-01-20",16),("2021-02-21",12), ("2021-03-22",51),("2021-02-23",13),("2021-03-24",15), ("2021-02-25",30),("2021-03-26",14),("2021-04-27",16), ("2021-02-28",15),("2021-01-29",20),("2021-01-30",18);
Выход:
Шаг 4: Просмотр вставленных данных
Запрос:
SELECT * FROM Products;
Выход:
Шаг 5: Теперь давайте сделаем наш запрос для сравнения продаж продуктов по месяцам.
SQL Server предоставляет функции МЕСЯЦ и ГОД, которые позволяют нам узнать месяц и год соответственно с заданной даты. Мы будем использовать эти две функции, функцию GROUP BY и функцию SUM, для расчета общего объема продаж.
Запрос:
SELECT YEAR(Order_date) AS Year, MONTH(Order_date) AS Month,SUM(Sales) AS Total_Sales FROM Products GROUP BY YEAR(Order_date), MONTH(Order_date) ;
Здесь мы просто группируем месяцы и годы, используя предложение GROUP BY , а затем получаем общий объем продаж, используя агрегатную функцию SUM .
Выход:
В приведенном выше запросе мы использовали SUM Функция для расчета общего объема продаж каждый месяц. Вы также можете узнать общее количество продаж каждый месяц. Для этого замените функцию СУММ на функцию СЧЁТ .
Запрос:
SELECT YEAR(Order_date) AS Year,MONTH(Order_date) AS Month,COUNT(Sales) AS Count_Of_Sales FROM Products GROUP BY YEAR(Order_date),MONTH(Order_date);
Выход:
Запрос:
SELECT YEAR(Order_date) AS Year, DATENAME(MONTH, Order_date) AS Month, COUNT(Sales) AS Count_Of_Sales FROM Products GROUP BY YEAR(Order_date), DATENAME(MONTH, Order_date);
Выход:
Функция DATENAME() возвращает определенную часть даты. Здесь мы использовали его для возврата части MONTH строки Order_date.
Мы можем показать эти данные в порядке убывания, используя предложение ORDER BY .
Запрос:
SELECT YEAR(Order_date) AS Year, DATENAME(MONTH, Order_date) AS Month, COUNT(Sales) AS Count_Of_Sales FROM Products GROUP BY YEAR(Order_date), DATENAME(MONTH, Order_date) ORDER BY Count_Of_Sales DESC;
Выход:
Из этого отчета мы можем легко сказать, что количество продаж было самым высоким в марте.
Теперь вы можете рассчитать ежемесячные продажи за разные годы. Для этого вообще ничего менять не надо, запрос останется точно таким же. Вы также можете провести некоторые эксперименты, используя предложение WHERE для фильтрации некоторых данных или других агрегатных функций.