我正在尝试在自定义范围内获取特定日期时间的过去每小时数据。例如,以下代码检索datetime的数据 - [1,2,3,24,168,169,170]
`With DataCte(Data,Consum) as (
select dateadd(hh,datepart(hh,Data), cast(CAST(Data as date) as datetime))
Data, AVG(Consum) Consum
from Grafic_SEN group by dateadd(hh,datepart(hh,Data),
cast(CAST(Data as date) as datetime))
)
select t1.Data,t2.Consum,t3.Consum,t4.Consum,t5.Consum,
t6.Consum,t7.Consum,t8.Consum
from DataCte t1
left join DataCte t2 on t2.Data=DATEADD(hh,-1,t1.Data)
left join DataCte t3 on t3.Data=DATEADD(hh,-2,t1.Data)
left join DataCte t4 on t4.Data=DATEADD(hh,-3,t1.Data)
left join DataCte t5 on t5.Data=DATEADD(hh,-24,t1.Data)
left join DataCte t6 on t6.Data=DATEADD(hh,-168,t1.Data)
left join DataCte t7 on t7.Data=DATEADD(hh,-169,t1.Data)
left join DataCte t8 on t8.Data=DATEADD(hh,-170,t1.Data)
where cast(t1.Data as date)='2015.01.01' order by t1.Data`
问题是我的代码非常慢。 谢谢你的帮助。
编辑:我的数据从日期“2014.01.01 00:00”开始,并显示here 从我的代码中获得的结果。