如何查看用户是否连续两个月使用我的产品?(SQL格式)

How can I see if a user uses my product two months in a row ? (SQL)

提问人:Charles Girouard 提问时间:10/20/2022 更新时间:10/20/2022 访问量:30

问:

我想知道一个月登录我的产品的用户是否也在下个月登录。

在我的代码部分,您可以找到当月至少登录一次的人的所有 ID 列表,以及相关月份。WITH

我想做第二部分,我将把月份、本月连接的人数以及下个月连接的相同人数作为专栏。

如果我的代码一团糟,我很抱歉,我是初学者,我尽力把它说清楚!

这就是我现在被卡住的地方:

WITH monthly_active_users AS ( 
SELECT DATE(CONCAT(YYYYMM, '-01')) month, users FROM(
select ym.YYYYMM,
ARRAY(select t.recipient
        from (SELECT recipient, 
            DATE(date) AS messagedate, 
            FROM messages) t
       WHERE FORMAT_DATE("%Y-%m",t.messagedate) = ym.YYYYMM) as userid

FROM (select distinct FORMAT_DATE("%Y-%m", date) as YYYYMM,
      from messages
     ) ym
WHERE ym.YYYYMM <= FORMAT_DATE("%Y-%m",CURRENT_DATE())
ORDER BY ym.YYYYMM DESC)
CROSS JOIN UNNEST(userid) AS users
)


SELECT t.month, COUNT(t.users) mon_count,
-- (
     -- SELECT COUNT(users)
     -- FROM (SELECT t1.users 
     -- FROM monthly_active_users t1
     -- JOIN monthly_active_users t2 
     -- on t1.month=DATE_SUB(t2.month, INTERVAL 1 MONTH)
     -- GROUP BY t1.month
     -- ) t1 WHERE DATE(CONCAT(t1.YYYYMM, '-01')) = DATE_SUB(t.YYYYMM, INTERVAL 1 MONTH)
-- )
FROM monthly_active_users t
GROUP BY month
ORDER by month DESC

最后一部分是测试,别介意哈哈--

感谢您的帮助,祝您有美好的一天!😁

SQL Google-BigQuery 子查询 比较 留存

评论

0赞 Samuel 10/20/2022
数组中的两个嵌套选择。请从“然后您将需要一个 Windows 功能开始:With tbl as (Select date_trunc(date_column,month) as YYYYMM, userid, count(1) as login_per_month from your_datset.your_table group by 1,2)Select *, date_diff(YYYYMM,lag(YYYYMM) over win_1,month)=1 from tbl window win_1 as (partition by userid order by YYYYMM)
0赞 Charles Girouard 10/20/2022
呀呀呀非常感谢,我在你的帮助下成功了!❤️

答: 暂无答案