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