実現したいこと
SQL文のみで、月毎のユーザ数の推移を出力したいです。
前月の新規ユーザ数を次月に累積させる必要があります。
月毎の新規ユーザ数の推移は、算出できるのですが、月毎のユーザ数の推移はどうやってSQL書けばいいかわかりませんでした。。
経緯
BIツールを利用し始めたのですが、SQLだけでデータ作る必要がありそうで、相談させていただきました。
前提
問題提起となるテーブル(user)とデータを作ります。
※MySQL5,7もしくは8での動作を期待しております。
SQL
1create table user ( 2 id int(10) unsigned, 3 name varchar(255), 4 created_at date 5); 6 7insert into user values 8('1', 'a', '2022/01/01'), 9('2', 'b', '2022/01/15'), 10('3', 'c', '2022/02/01'), 11('4', 'd', '2022/03/01'), 12('5', 'e', '2022/03/15'), 13('6', 'f', '2022/05/01'), 14('7', 'g', '2022/06/01'), 15('8', 'h', '2022/06/15'), 16('9', 'i', '2022/07/01'), 17('10', 'j', '2022/08/01'), 18('11', 'k', '2022/09/01'), 19('12', 'l', '2022/10/01'), 20('13', 'm', '2022/11/01'), 21('14', 'n', '2022/11/15'), 22('15', 'o', '2022/12/01');
以下のSQLですと、新規ユーザ数の推移となります。
SQL
1SELECT 2 DATE_FORMAT(created_at, '%Y/%m') AS month, 3 COUNT(id) AS user_num 4FROM 5 user 6GROUP BY 7 month 8ORDER BY 9 month
month user_num 2022/01 2 2022/02 1 2022/03 2 2022/05 1 2022/06 2 2022/07 1 2022/08 1 2022/09 1 2022/10 1 2022/11 2 2022/12 1

回答3件
あなたの回答
tips
プレビュー