Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 过去6个月内每周结束时的用户总数_Mysql - Fatal编程技术网

Mysql 过去6个月内每周结束时的用户总数

Mysql 过去6个月内每周结束时的用户总数,mysql,Mysql,我试图找到过去26周内每周结束时的用户总数 比如说, 第26周开始时有100个用户,20个新用户注册,所以第26周结束时有120个 第25周开始时,有120名用户,20名新用户在该周注册,因此第25周结束时有140名用户 第24周开始时有140个用户,0个新用户注册,10个用户删除了他们的帐户,因此第24周结束时有130个 第23周开始时有130个用户,10个新用户注册,所以第24周结束时有140个 等等 我可以找到每周新用户的数量,但如何让它显示总数,即本周新增用户+本周之前的所有用户,等等,

我试图找到过去26周内每周结束时的用户总数

比如说,

第26周开始时有100个用户,20个新用户注册,所以第26周结束时有120个 第25周开始时,有120名用户,20名新用户在该周注册,因此第25周结束时有140名用户 第24周开始时有140个用户,0个新用户注册,10个用户删除了他们的帐户,因此第24周结束时有130个 第23周开始时有130个用户,10个新用户注册,所以第24周结束时有140个 等等

我可以找到每周新用户的数量,但如何让它显示总数,即本周新增用户+本周之前的所有用户,等等,而不必创建26个单独的选择?可能吗

我找到了,但它是针对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 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

考虑提供适当的DDL和/或SqLFIDLE连同期望的结果。请参见汇总。您的查询应该可以做到这一点。你得到的是每周的用户总数,这就是你想要的,对吗?这个给我子查询返回的行数超过1行-你的意思是从用户u2中选择COUNTu2.id吗?只是检查一下,因为我遇到了一个问题-这在所有日期都在同一年时效果很好,但是,如果像现在这样,你在一年中有几次约会,而在另一年中又有几次约会,似乎都要中断了。我得到的当前数据显示的是2014年1月而不是2015年1月的结果?实际上,它显示为01/12/14、08/12/14、15/12/14、22/12/14、29/12/14、05/01/14、12/01/14、19/01/14等等?我将稍后再看这个问题。我一周又一周地改变,似乎解决了这个问题
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