Sql 查询日期并返回两周平均温度
我不知道怎么接近这个。。我需要获取大量的温度数据。。每两周取一次平均值。。我玩过数据透视图,只能返回每周平均值Sql 查询日期并返回两周平均温度,sql,average,Sql,Average,我不知道怎么接近这个。。我需要获取大量的温度数据。。每两周取一次平均值。。我玩过数据透视图,只能返回每周平均值 Table:TempData SITE Date Temperature_C JON 6/4/2001 28 JON 6/4/2001 29 JON 6/4/2001 26 JON 6/5/2001 24 JON 6/5/2001 27 等等 我可以创建一个查询,将所有日期分解为一个特定ID。。比如1-100,每个值代表从2001年6月4日开始的2周平均值-
Table:TempData
SITE Date Temperature_C
JON 6/4/2001 28
JON 6/4/2001 29
JON 6/4/2001 26
JON 6/5/2001 24
JON 6/5/2001 27
等等
我可以创建一个查询,将所有日期分解为一个特定ID。。比如1-100,每个值代表从2001年6月4日开始的2周平均值-无论200周后是什么。然后以这种方式使用透视图。。当然,我将不得不平均大量的日期(许多具有不同数量的记录值..有些日子有4条记录..有些日子有40条记录)。任何我可以用来搜索基于日期的连续序列的代码。。Datesub()?我不知所措 我们的想法是将自某个开始日期起的天数除以14。以下是使用SQL Server语法的示例:
select datediff(day, cast('2012-01-01' as date), [date])/14 as weeknumber,
min([date]) as weekstart,
max([date]) as weekend,
avg(Temperature_C*1.0) as avg_temp
from TempData
group by datediff(day, cast('2012-01-01' as date), [date])/14
order by 1
在其他数据库中,逻辑类似,但具体功能不同
顺便说一句,2012年1月1日是星期天,所以这一周应该是星期天-星期六(这通常是合理的)。你需要这样的东西:
SELECT anyColumn, …, dateadd(week, datediff(week, 0, dateColumn) / 2 * 2 , 0) as biweekly, avg(temperature)
FROM table
WHERE condition
GROUP BY anyColumn, …, dateadd(week, datediff(week, 0, dateColumn) / 2 * 2 , 0)
您使用的是什么数据库管理系统?