ID mobileno dateofregistration registrationstate
44 1674174925 2011-04-18 10:17:30.670 0
45 1677864168 2011-03-31 10:20:22.450 1
46 1677864161 2011-04-18 20:47:35.293 0
47 1674174925 2011-03-29 09:28:55.200 1
48 1674174967 2011-03-29 09:28:55.100 1
我要查找给定时间段内有多少registrationstate = 1
在同一时间段内,有多少注册状态从0变为1。
SELECT CONVERT(varchar(10), dateofregistration, 103) AS Date , COUNT(1) AS Subbase , SUM(CASE WHEN registrationstate='1' THEN 1 ELSE 0 END) AS NewAct , SUM(CASE WHEN (registrationstate='0' and registrationstate='1') THEN 1 ELSE 0 END) AS SuccessRen FROM tbl_User GROUP BY CONVERT(varchar(10), dateofregistration, 103) ORDER BY 1
答案 0 :(得分:0)
创建calendar table并使用该联接来帮助您完成第一次查询。在日历表中定义您的期间,然后根据您的日历表期间的一些连接和计数语句进行分组。
第二个查询是类似的,但我会创建一个mobilenumbers = 0的子查询,并将该子查询的所有1加入到timeperiod中。
在我对解决方案进行编码的过程中,我确信我发现我对其中的一些方法有误解;)