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日間の無料トライアルを提供しています。