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

MySQLで1日あたりの累積合計ユーザーを取得する方法

    1日の累積総ユーザー数は、すべてのビジネスのユーザーの成長を分析するための非常に便利なKPIメトリックです。ただし、MySQLには現在の合計を計算する組み込み関数がないため、これは1日あたりの累積合計ユーザーを取得するSQLクエリです。これは、日付ごとのローリング合計またはユーザーの現在の合計とも呼ばれます。

    MySQLで1日あたりの累積総ユーザー数を取得する方法

    MySQLで1日あたりの累積合計ユーザーを取得する手順は次のとおりです。次のテーブルがあるとしますusers(date_joined、user_id) これには、すべてのユーザーIDと、ビジネスへの登録/登録/参加の日付が含まれています。

    mysql> create table users(date_joined date,user_id int);
    
    mysql> insert into users(date_joined,user_id)
           values('2020-04-28',213),
           ('2020-04-28',214),
           ('2020-04-30',215),
           ('2020-04-28',216),
           ('2020-04-28',217),
           ('2020-04-30',218),
           ('2020-04-28',219),
           ('2020-04-28',220),
           ('2020-04-30',221),
           ('2020-05-01',222),
           ('2020-05-01',222),
           ('2020-05-01',223),
           ('2020-05-04',224),
           ('2020-05-04',225),
           ('2020-05-04',226),
           ('2020-05-04',226),
           ('2020-05-04',227),
           ('2020-05-04',228),
           ('2020-05-05',229),
           ('2020-05-05',230),
           ('2020-05-05',231),
           ('2020-05-05',232),
           ('2020-05-06',233),
           ('2020-05-06', 234);
    
    mysql> select * from users;
    +-------------+---------+
    | date_joined | user_id |
    +-------------+---------+
    | 2020-04-28  |     213 |
    | 2020-04-28  |     214 |
    | 2020-04-30  |     215 |
    | 2020-04-28  |     216 |
    | 2020-04-28  |     217 |
    | 2020-04-30  |     218 |
    | 2020-04-28  |     219 |
    | 2020-04-28  |     220 |
    | 2020-04-30  |     221 |
    | 2020-05-01  |     222 |
    | 2020-05-01  |     222 |
    | 2020-05-01  |     223 |
    | 2020-05-04  |     224 |
    | 2020-05-04  |     225 |
    | 2020-05-04  |     226 |
    | 2020-05-04  |     226 |
    | 2020-05-04  |     227 |
    | 2020-05-04  |     228 |
    | 2020-05-05  |     229 |
    | 2020-05-05  |     230 |
    | 2020-05-05  |     231 |
    | 2020-05-05  |     232 |
    | 2020-05-06  |     233 |
    | 2020-05-06  |     234 |
    +-------------+---------+
    

    まず、SQLクエリを調べて、1日の登録数を計算します

    mysql> select date(date_joined),count(user_id) 
           from users 
           group by date(date_joined);
    +-------------------+----------------+
    | date(date_joined) | count(user_id) |
    +-------------------+----------------+
    | 2020-04-28        |        6       |
    | 2020-04-30        |        3       |
    | 2020-05-01        |        3       |
    | 2020-05-04        |        6       |
    | 2020-05-05        |        4       |
    | 2020-05-06        |        2       |
    +-------------------+----------------+

    次に、MySQLで1日あたりの累積合計ユーザーを取得するSQLクエリを次に示します。上記のSQLをサブクエリとして使用して、SQLの現在の合計を取得します。

    mysql> set @csum := 0;
    
    mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
                from (
                 select date(date_joined) as date_joined,count(user_id) as new_users
                 from users
                 group by date(date_joined)
                ) as temp
                order by date_joined;
    +-------------+-----------+-------------+
    | date_joined | new_users | total_users |
    +-------------+-----------+-------------+
    | 2020-04-28  |         6 |           6 |
    | 2020-04-30  |         3 |           9 |
    | 2020-05-01  |         3 |          12 |
    | 2020-05-04  |         6 |          18 |
    | 2020-05-05  |         4 |          22 |
    | 2020-05-06  |         2 |          24 |
    +-------------+-----------+-------------+
    

    上記のクエリでは、一時変数csumを0に設定します。次に、各行について、それを使用してユーザーの累積合計を計算して保存します。

    MySQLで1日あたりの累積合計ユーザー数を取得したら、Ubiqなどのレポートツールを使用して折れ線グラフまたはダッシュボードにプロットし、チームと共有できます。これがUbiqを使用して作成された折れ線グラフです。

    MySQLで条件付き累計を取得する場合は、要件に応じて、サブクエリにWHERE句を追加できます。

    mysql> set @csum := 0;
    mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
                from (
                 select date(date_joined) as date_joined,count(user_id) as new_users
                 from users 
                 WHERE <condition>
                 group by date(date_joined)
                ) as temp
                order by date_joined;
    

    上記のSQLクエリを簡単に変更して、週、月、四半期、年ごとの累積合計ユーザー数を計算できます。それらを一つずつ見ていきましょう。 DATE_FORMAT関数を使用して、日付列から週、月を簡単に取得します。

    ボーナスリード:MySQLで収益を計算する方法

    MySQLで1週間あたりの累積総ユーザー数を取得する方法

    これは、MySQLで週ごとの累積合計ユーザーを取得するためのSQLクエリです。 1日あたりの累積合計ユーザー数を取得するSQLクエリでは、サブクエリの集計関数を date(date_joined)から変更するだけです。 date_format(date_format、’%U’)

    mysql> set @csum := 0;
    mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
                from (
                 select date_format(date_joined,'%U') as date_joined,
                   count(user_id) as new_users
                 from users
                 group by date_format(date_joined,'%U')
                ) as temp
                order by date_joined;
    

    上記のクエリでは、DATE_FORMATの代わりにWEEK関数を使用することもできます。つまり、DATE_FORMAT(date_joined、’%U’)の代わりにWEEK(date_joined)を使用することもできます

    ボーナスリード:MySQLで今月のレコードを取得する方法

    MySQLで1か月あたりの累積総ユーザー数を取得する方法

    これは、MySQLで月ごとの累積合計ユーザーを取得するためのSQLクエリです。 1日あたりの累積合計ユーザー数を取得するSQLクエリでは、サブクエリの集計関数を date(date_joined)から変更するだけです。 date_format(date_format、’%b’)

    mysql> set @csum := 0;
    
    mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
                from (
                 select date_format(date_joined,'%b') as date_joined,
                   count(user_id) as new_users
                 from users
                 group by date_format(date_joined,'%b')
                ) as temp
                order by date_joined;
    

    ボーナスリード:MySQLで過去3か月の売上データを取得する方法

    MySQLで四半期ごとの累積合計ユーザーを取得する方法

    これは、MySQLの四半期ごとの累積合計ユーザーを取得するためのSQLクエリです。 1日あたりの累積合計ユーザー数を取得するSQLクエリでは、サブクエリの集計関数を date(date_joined)から変更するだけです。 quarter(date_format)へ 。

    mysql> set @csum := 0;
    mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
                from (
                 select quarter(date_joined) as date_joined,
                   count(user_id) as new_users
                 from users
                 group by quarter(date_joined)
                ) as temp
                order by date_joined;
    

    MySQLで年間の累積総ユーザー数を取得する方法

    これは、MySQLの年ごとの累積合計ユーザーを取得するためのSQLクエリです。 1日あたりの累積合計ユーザー数を取得するSQLクエリでは、サブクエリの集計関数を date(date_joined)から変更するだけです。 year(date_format)へ 。

    mysql> set @csum := 0;
    mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
                from (
                 select year(date_joined) as date_joined,
                   count(user_id) as new_users
                 from users
                 group by year(date_joined)
                ) as temp
                order by date_joined;
    

    それでおしまい!上記のSQLクエリを試して、MySQLの1日あたりの累積合計ユーザー数を取得できます。 MySQLデータベースからチャート、ダッシュボード、レポートを作成したい場合は、Ubiqを試すことができます。 14日間の無料トライアルを提供しています。

    1. ターミナルからMySQLを使用してデータベースをインポートするにはどうすればよいですか?

    2. SQL Server 2008 Spatial:ポリゴン内のポイントを検索します

    3. データベース管理のトップトレンド

    4. MySQLの日付間の月の違い