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

MySQLで1週間あたりの平均売上を計算する方法

    1週間あたりの平均売上 は、どの業界で働いているかに関係なく、すべてのビジネスに役立つメトリックです。これにより、ビジネスがどのように行われているか、および妥当な時間枠での良いアイデアが得られます。また、現在の日々の売上高のノイズを滑らかにするのにも役立ちます。 MySQLで1週間あたりの平均売上を計算する方法は次のとおりです。

    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での1週間あたりの平均売上を計算する

    MySQLには、その年のWEEK番号を返す組み込み関数WEEKが用意されています。以下に示すように、GROUP BY句とAVG関数を使用して、MySQLの1週間あたりの平均売上を簡単に計算できます。

    mysql> select week(order_date),avg(sale) from sales
        -> group by week(order_date);
    +------------------+-----------+
    | week(order_date) | avg(sale) |
    +------------------+-----------+
    |                0 |   12.0000 |
    |                1 |   11.5714 |
    |                2 |   13.5714 |
    |                3 |   15.8571 |
    |                4 |   14.6000 |
    +------------------+-----------+
    

    CONCAT関数とROUND関数を使用して結果を美しくすることができます。CONCATを使用してカスタム文字列を週番号に連結し、ROUND関数を使用して平均値を丸めることができます。これが例です

    mysql> select concat('Week ',week(order_date)) as 'Week',round(avg(sale),2) as 'Average Sale'
     from sales group by week(order_date);
    +--------+--------------+
    | Week   | Average Sale |
    +--------+--------------+
    | Week 0 |        12.00 |
    | Week 1 |        11.57 |
    | Week 2 |        13.57 |
    | Week 3 |        15.86 |
    | Week 4 |        14.60 |
    +--------+--------------+
    

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

    テーブルにさらに多くの列があり、その平均を計算する場合は、以下の太字で示すように、クエリに追加するだけです

    mysql> select concat('Week ',week(order_date)) as 'Week',round(avg(sale),2) as 'Average Sale'
    ,round(avg(goal),2) as 'Average Goals',round(avg(revenue),2) as 'Average Revenue'
     from sales group by week(order_date);
    

    クエリにフィルタを追加する場合は、以下に示すようにクエリにWHERE句を追加できます

    mysql> select week(order_date),avg(sale) from sales WHERE <condition here>
        -> group by week(order_date);
    

    ボーナスリード:MySQLで1か月あたりの総売上高を計算する方法

    MySQLのWeek関数は、週次データを計算するための複数の方法を提供します。その構文は

    です

    WEEK(日付週の最初の日

    firstdayofweekはオプションであり、次の値を取ることができます

    オプション値 最初の曜日 範囲 第1週は最初の週です…
    0 日曜日 0-53 今年の日曜日
    1 月曜日 0-53 今年は3日以上
    2 日曜日 1-53 今年の日曜日
    3 月曜日 1-53 今年は3日以上
    4 日曜日 0-53 今年は3日以上
    5 月曜日 0-53 今年の月曜日
    6 日曜日 1-53 今年は3日以上
    7 月曜日 1-53 今年の月曜日

    デフォルト値は0です。

    MySQLで週あたりの平均売上を計算するときは、WEEK関数で2番目の引数を使用するときに注意してください。適切に使用しないと、平均数の計算を誤る可能性があります。

    最後に、レポートツールを使用して、ダッシュボードに1週間あたりの平均売上をプロットし、チームと共有できます。これは、Ubiqを使用して作成された1週間あたりの平均売上高を示す棒グラフの例です。

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

    1. 文字列内の最初の非数値文字を検索するSQL

    2. MariaDBでのSUBSTRING()のしくみ

    3. Postgresデータベース内のすべてのテーブルを切り捨てる

    4. OracleでFROM句なしで選択