sql >> データベース >  >> RDS >> Mysql

MySQLで1か月あたりの総売上高を計算する方法は?

    月ごとの売上は、すべてのビジネスにとって、追跡するのに非常に役立つビジネスKPIメトリックです。マーケティングキャンペーンとイニシアチブが販売にどのように影響するかを理解し、販売の周期性とスポットの変動を特定するのに役立ちます。データがデータベースに保存されている場合は、SQLで月次売上レポートを簡単に計算できます。 MySQLで1か月あたりの総売上高を計算する方法は次のとおりです。これを使用して、MySQLで月ごとのデータを取得することもできます。

    MySQLで1か月あたりの総売上高を計算するにはどうすればよいですか?

    MySQLで1か月あたりの総売上高を計算する手順は次のとおりです。次のテーブルがあるとしますsales(order_date、sale) 売上データを保存します。

    mysql>create table sales(order_date date,sale int);
    
    mysql>insert into sales(order_date,sale)
          values('2020-01-01',10),('2020-01-02',12),('2020-01-03',15),
          ('2020-01-04',11),('2020-01-05',13),('2020-01-06',9),
          ('2020-01-07',21),('2020-01-08',10),('2020-01-09',10),
          ('2020-01-10',2),('2020-01-11',16),('2020-01-12',12),
          ('2020-01-13',10),('2020-01-14',18),('2020-01-15',15),
          ('2020-01-16',12),('2020-01-17',10),('2020-01-18',18),
          ('2020-01-19',14),('2020-01-20',16),('2020-01-21',12),
          ('2020-01-22',21),('2020-01-23',13),('2020-01-24',15),
          ('2020-01-25',20),('2020-01-26',14),('2020-01-27',16),
          ('2020-01-28',15),('2020-01-29',10),('2020-01-30',18);
    
    mysql>select * from sales;
    +------------+------+
    | order_date | sale |
    +------------+------+
    | 2020-01-01 |   10 |
    | 2020-01-02 |   12 |
    | 2020-01-03 |   15 |
    | 2020-01-04 |   11 |
    | 2020-01-05 |   13 |
    | 2020-01-06 |    9 |
    | 2020-01-07 |   21 |
    | 2020-01-08 |   10 |
    | 2020-01-09 |   10 |
    | ...        |   ...|
    +------------+------+
    

    MySQLで月次売上レポートを計算する

    MySQLには、日付から月と年をそれぞれ計算できるMONTH関数とYEAR関数が用意されています。これらの2つの関数を使用して、MySQLの1か月あたりの総売上高を計算します。

    mysql> select year(order_date),month(order_date),sum(sale)
         from sales
         group by year(order_date),month(order_date)
         order by year(order_date),month(order_date);
    +------------------+-------------------+-----------+
    | year(order_date) | month(order_date) | sum(sale) |
    +------------------+-------------------+-----------+
    |             2020 |                 1 |       408 |
    |             2020 |                 2 |       320 |
    |             2020 |                 3 |       540 |
    |              ... |               ... |       ... |
    +------------------+-------------------+-----------+
    

    上記のクエリは、毎月の総売上高を合計するのに役立つSUM関数を使用しています。毎月の総売上高のみが必要な場合は、代わりにCOUNT関数を使用できます。

    mysql> select year(order_date),month(order_date),count(sale)
         from sales
         group by year(order_date),month(order_date)
         order by year(order_date),month(order_date);
    +------------------+-------------------+-----------+
    | year(order_date) | month(order_date) | sum(sale) |
    +------------------+-------------------+-----------+
    |             2020 |                 1 |        18 |
    |             2020 |                 2 |        10 |
    |             2020 |                 3 |        21 |
    |              ... |               ... |       ... |
    +------------------+-------------------+-----------+
    

    MySQLで1か月あたりの総売上高を計算するために使用されるデータをフィルタリングする場合は、以下の太字に示すように、WHERE句を使用してフィルタリングできます。

    mysql> select year(order_date),month(order_date),sum(sale)
         from sales
         WHERE condition
         group by year(order_date),month(order_date)
         order by year(order_date),month(order_date);
    
    

    同様に、MySQLで1週間あたりの平均売上と1日あたりの平均売上を計算することもできます。

    テーブルsales(product、order_date、sale)に複数の製品の売上データがある場合は、GROUPBY句とORDERBY句を更新することで、各製品の月間売上を計算できます。

    mysql> create table sales(product varchar(255),order_date date,sale int);
    
    mysql> insert into sales values('A','2020-01-01',20),('B','2020-01-02',25),
    ('B','2020-01-03',15),('A','2020-01-04',30),('A','2020-01-05',20);
    
    mysql> select * from sales;
    +---------+------------+------+
    | product | order_date | sale |
    +---------+------------+------+
    |    A    | 2020-01-01 |   20 |
    |    B    | 2020-01-02 |   25 |
    |    B    | 2020-01-03 |   15 |
    |    A    | 2020-01-04 |   30 |
    |    A    | 2020-01-05 |   20 |
    +---------+------------+------+
    
    mysql> select product, year(order_date),month(order_date),sum(sale)
              from sales
              group by product, year(order_date),month(order_date)
              order by product, year(order_date),month(order_date);
    +---------+------------------+-------------------+-----------+
    | product | year(order_date) | month(order_date) | sum(sale) |
    +---------+------------------+-------------------+-----------+
    | A       |             2020 |                 1 |        70 |
    | B       |             2020 |                 1 |        40 |
    | ...     |              ... |               ... |       ... |
    +---------+------------------+-------------------+-----------+
    

    MySQLで1か月あたりの総売上高を計算する方法がわかったので、要件に応じてカスタマイズできます。

    ボーナスリード:MySQLで月ごとの成長率を計算する方法

    月次売上データをグラフ化するために、以前のSQLクエリを少し変更して、年と月の数値を使用する代わりに、DATE_FORMAT関数を使用して月の名前を取得します

    mysql> select date_format(order_date,'%M'),sum(sale)
          from sales
          group by year(order_date),month(order_date)
          order by year(order_date),month(order_date);
    +------------------------------+-----------+
    | date_format(order_date,'%M') | sum(sale) |
    +------------------------------+-----------+
    | January                      |       408 |
    | Febuary                      |       320 |
    | March                        |       540 |
    | ...                          |       ... |
    +------------------------------+-----------+
    

    MySQLで月間総売上高を計算した後、グラフ作成ツールを使用して棒グラフに月間売上高をプロットできます。これは、Ubiqを使用して作成された月間売上グラフの例です

    ちなみに、MySQLデータベースから販売チャートとダッシュボードを作成したい場合は、Ubiqを試すことができます。 14日間の無料トライアルを提供しています。

    1. MySQLのFIELD()とFIND_IN_SET()の違い

    2. SQLServerパフォーマンスモニタリングに関する上位10のFAQ

    3. SQL Serverの変数列名?

    4. シェルスクリプトからsqlplusに変数を渡す方法