Sql 获取基于日期的用户计数
我有一个简单的表,我存储用户名,用户名,电子邮件,注册日期Sql 获取基于日期的用户计数,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个简单的表,我存储用户名,用户名,电子邮件,注册日期 RegistrationDate是DateTime数据类型 当我想得到每个日期的用户数时,每行得到1,因为每行都有一个唯一的日期时间戳 SELECT DATEPART(dd, RegistrationDate) AS DD, COUNT(userID) FROM USER_Table GROUP BY RegistrationDate order by RegistrationDate DESC 如果我注册了100个用户,那
RegistrationDate
是DateTime
数据类型
当我想得到每个日期的用户数时,每行得到1,因为每行都有一个唯一的日期时间戳
SELECT DATEPART(dd, RegistrationDate) AS DD, COUNT(userID)
FROM USER_Table
GROUP BY RegistrationDate
order by RegistrationDate DESC
如果我注册了100个用户,那么上面的查询将每100行获取一个
我想得到基于日期的计数。我尝试了不同的方法,但似乎没有任何效果。您需要按
CAST(注册日期为日期)分组。
您需要按
CAST分组(注册日期为日期)
试试这个:
SELECT Cast(RegistrationDate AS DATE),
Count(userID)
FROM User_Table
GROUP BY Cast(RegistrationDate AS DATE)
ORDER BY Cast(RegistrationDate AS DATE)DESC
试试这个:
SELECT Cast(RegistrationDate AS DATE),
Count(userID)
FROM User_Table
GROUP BY Cast(RegistrationDate AS DATE)
ORDER BY Cast(RegistrationDate AS DATE)DESC
这将按天分组,而不是按日期分组。因此,10月1日将与11月1日、12月1日等进行分组,但仍然不起作用。您还需要按列强制转换订单,这将按天分组,而不是按日期分组。因此,10月1日将与11月1日、12月1日等进行分组,但仍然不起作用。您还需要按列强制转换订单
SELECT cast(RegistrationDate as Date) AS DD, COUNT(userID)
FROM USER_Table
GROUP BY cast(RegistrationDate as Date)
order by cast(RegistrationDate as Date) DESC