关于按天汇总90天内的数据的SQL语句

ark_yk 反作弊工程师  2015-12-09 04:06:03
一张表 有一年的数据 结构如下
buytime 时间类型
id int 自增

按 天计算 buytime 在90天内天条数 count(id)

这样的 sql 语句 应该怎么写啊??

没有思路,现在有的思路就是循环。。。。
...全文
246 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ark_yk 2015-12-09
引用 6 楼 szx1999 的回复:
select a.buytime,sum(b.cnt) cnt
from
(
	select CONVERT(varchar(10),DATEADD(D,-number,DATEADD(D,0,DATEDIFF(D,0,getdate()))),120) buytime
	from master..spt_values where type='p' and number<90
) a
LEFT JOIN
(
	select CONVERT(varchar(10),buytime,120) buytime,count(id) cnt
	from tb
	group by CONVERT(varchar(10),buytime,120)
) b on datediff(d,b.buytime,a.buytime)<90
大神 NB 习惯 datediff(d,b.buytime,a.buytime) 等于了 ,谢谢 !!!!
回复
等不到来世 2015-12-09
select a.buytime,sum(b.cnt) cnt
from
(
	select CONVERT(varchar(10),DATEADD(D,-number,DATEADD(D,0,DATEDIFF(D,0,getdate()))),120) buytime
	from master..spt_values where type='p' and number<90
) a
LEFT JOIN
(
	select CONVERT(varchar(10),buytime,120) buytime,count(id) cnt
	from tb
	group by CONVERT(varchar(10),buytime,120)
) b on datediff(d,b.buytime,a.buytime)<90
回复
ark_yk 2015-12-09
引用 3 楼 yuyankang 的回复:
[quote=引用 1 楼 szx1999 的回复:]
select count(id) from tb
where buytime>=DATEADD(D,0,DATEDIFF(D,0,getdate())-90)
这个要求是算 90天之内的数据 每天出一个 指标[/quote] 12月9日 这边的计算指标 是 9月9日 ----- 12月9日 12月8日 这边的计算指标 是 9月8日 ----- 12月8日 12月7日 这边的计算指标 是 9月7日 ----- 12月7日 12月6日 这边的计算指标 是 9月6日 ----- 12月6日 是这样类推 下来的
回复
等不到来世 2015-12-09
select a.buytime,isnull(b.cnt,0) cnt
from
(
	select CONVERT(varchar(10),DATEADD(D,-number,DATEADD(D,0,DATEDIFF(D,0,getdate()))),120) buytime
	from master..spt_values where type='p' and number<90
) a
LEFT JOIN
(
	select CONVERT(varchar(10),buytime,120) buytime,count(id) cnt
	from tb
	group by CONVERT(varchar(10),buytime,120)
) b on a.buytime=b.buytime
回复
ark_yk 2015-12-09
引用 1 楼 szx1999 的回复:
select count(id) from tb
where buytime>=DATEADD(D,0,DATEDIFF(D,0,getdate())-90)
这个要求是算 90天之内的数据 每天出一个 指标
回复
ark_yk 2015-12-09
引用 1 楼 szx1999 的回复:
select count(id) from tb
where buytime>=DATEADD(D,0,DATEDIFF(D,0,getdate())-90)
按天统计的 不是 指定时间的
回复
等不到来世 2015-12-09
select count(id) from tb
where buytime>=DATEADD(D,0,DATEDIFF(D,0,getdate())-90)
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-12-09 04:06
社区公告
暂无公告