2012-08-15 79 views
0

不知道如何處理這一個..我需要採取大量的溫度數據..並平均他們在雙週間隔..我玩了數據透視圖,只能返回每週平均數..查詢日期和返回雙週溫度平均值

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周之後。然後以這種方式處理樞軸圖。當然,我將不得不AVG大量的日期(許多具有不同數量的記錄值..有些日子有4個記錄..有些有40個)。我可以使用任何代碼來搜索基於日期的連續系列.. Datesub()?我很茫然。

+2

什麼DBMS您使用的? – 2012-08-15 12:38:12

回答

0

的想法是使用SQL Server語法爲例採取的天數,因爲一些開始日期和除以14位置:

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日是星期天,所以這周將是星期日 - 星期六(這通常是合理的)。

0

你需要的東西是這樣的:

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)