gpt4 book ai didi

mysql - 过去 6 个月每周结束时的用户总数

转载 作者:行者123 更新时间:2023-11-29 13:31:58 27 4
gpt4 key购买 nike

我正在尝试查找过去 26 周每周结束时的用户总数。

例如,

  • 从第 26 周开始,该周有 100 名用户注册,并且有 20 名新用户注册,因此到第 26 周结束时,注册用户数量为 120 名
  • 从第 25 周开始,该周有 120 名用户注册,并且有 20 名新用户注册,因此到第 25 周结束时,有 140 名用户
  • 从第 24 周开始,该周有 140 名用户注册,其中 0 名新用户注册,10 名删除了他们的帐户,因此到第 24 周结束时,有 130 名用户
  • 从第 23 周开始,该周有 130 名用户注册,并且有 10 名新用户注册,因此到第 24 周结束时,有 140 名用户

等等

我可以找到每周的新用户数量,但如何才能让它显示总数(即本周的新用户 + 本周之前的所有用户)等等,而无需创建 26 个单独的选择?是否可以?

我找到了Grouping total active users for each of the previous 8 weeks但它是针对 SQL Server 的,我认为它不能完全满足我的需要。

我每周都用它来获取新内容:

select count(id) as total
from users
where join_date>='$sixmonths'
group by WEEK(join_date)
order by WEEK(join_date) desc
limit 26

最佳答案

查询:

select count(u.id) as total,
(SELECT COUNT(u.id)
FROM users u2
WHERE WEEK(u2.join_date) <=
WEEK(u.join_date)
AND u2.id = u.id) AS Total_count
from users u
where u.join_date>='$sixmonths'
group by WEEK(u.join_date)
order by WEEK(u.join_date) desc
limit 26

要在年份之间进行查询:

select count(u.id) as total,
(SELECT COUNT(u.id)
FROM users u2
WHERE YEARWEEK(u2.join_date) <=
YEARWEEK(u.join_date)
AND u2.id = u.id) AS Total_count
from users u
where u.join_date>='$sixmonths'
group by YEARWEEK(u.join_date)
order by YEARWEEK(u.join_date) desc
limit 26

关于mysql - 过去 6 个月每周结束时的用户总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19318844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com