Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询日期并返回两周平均温度_Sql_Average - Fatal编程技术网

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)

您使用的是什么数据库管理系统?