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

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

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

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

没有思路,现在有的思路就是循环。。。。
...全文
545 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)

22,299

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧