如何在mysql中使用sum(count())

如何在mysql中使用sum(count()),mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,我希望获得在我的网站上注册的日期范围内的用户总数,如下所示: 2个用户在6月1日登录 6月2日有1名用户, 6月3日有2名用户 那我需要你的计数 6月1日至6月2日 6月2日至6月3日 6月3日至6月5日 这是我的问题 SET @runtot:=0; SELECT count(u.app_user_registered_date) as users_count, (@runtot := count(u.app_user_registered_date) + @runout) AS

我希望获得在我的网站上注册的日期范围内的用户总数,如下所示:

2个用户在6月1日登录 6月2日有1名用户, 6月3日有2名用户 那我需要你的计数

6月1日至6月2日

6月2日至6月3日

6月3日至6月5日

这是我的问题

SET @runtot:=0;
SELECT
    count(u.app_user_registered_date) as users_count,
    (@runtot := count(u.app_user_registered_date) + @runout) AS rt,           
    date(u.app_user_registered_date) as registered_date
FROM entr_user as u
INNER JOIN entr_app_granted_permission_details as g
ON g.device_id=u.device_id
WHERE date(u.app_user_registered_date) between '2016-05-31' and '2016-06-03'    
GROUP BY date(u.app_user_registered_date) ORDER BY u.app_user_registered_date;

但是rt值在这里是空的

也许您需要rt。我们不知道。然而,您的变量中似乎有一个输入错误:runtot。大概你想写:runout。这就是rt返回null的原因。在这里:

SET @runout:=0;
SELECT
COUNT(u.app_user_registered_date) AS users_count,
(@runout := count(u.app_user_registered_date) + @runout) AS rt,
DATE(u.app_user_registered_date) AS registered_date
FROM entr_user as u
INNER JOIN entr_app_granted_permission_details as g
ON g.device_id=u.device_id
WHERE date(u.app_user_registered_date) between '2016-05-31' and '2016-06-03'
GROUP BY date(u.app_user_registered_date) ORDER BY u.app_user_registered_date;";
像这样使用。。 当天的用户总数

SELECT u.app_user_registered_date,COUNT(u.id) as users FROM `entr_user` as u 

INNER JOIN entr_app_granted_permission_details as g ON g.device_id=u.device_id

WHERE date(u.app_user_registered_date) between '2016-06-07' and '2016-06-10' GROUP BY u.app_user_registered_date
当天和之前的总用户数,从_日期到我们提供的

SELECT u.app_user_registered_date,COUNT(u.id) as users,

(select COUNT(h.id) from entr_user as h 
    INNER JOIN entr_app_granted_permission_details as i ON i.device_id=h.device_id
    where (DATE(h.app_user_registered_date) between '2016-06-07' and '2016-06-10') and
    DATE(h.app_user_registered_date)<=DATE(u.app_user_registered_date) 
)as total_users

FROM `entr_user` as u 
INNER JOIN entr_app_granted_permission_details as g ON g.device_id=u.device_id
WHERE date(u.app_user_registered_date) between '2016-06-07' and '2016-06-10' GROUP BY u.app_user_registered_date

请添加表定义。请使用CREATEs和insert转储表。“rt”的用途是什么?我想这是因为您将runtot设置为:=0;但是,use+runout-runout将为null,将null添加到任何其他值将生成null。。。