我为了简单而简化现实..。
我有一张桌子,上面有数以百万计的温度观测: ObservationID,LocationID,Observation_Date,温度
我想写一个查询,但也派生出其他列,
ObservationID,LocationID,Observation_Date,Temperature_At_Last_Observation,Temperature_2_observations_ago,Temperature_3_observations_ago,Temperature_4_observations_ago,..etc.
实际上,这要复杂得多,而且我确实在表中有数百万行。所以我想知道哪种方法最有效。
我是否从递归的角度来攻击它?或者因为我每行至少有15个新列,这是否意味着递归效率低下?
还是坚持一种基于集合的方法,将观测数据划分为一个排序顺序,然后加入LocationID?
有什么建议吗?
幸运的是,我还可以选择将数据加载到Teradata平台或SQLServer2008R2平台中。
发布于 2013-04-23 19:58:02
坚持一种基于集合的方法。
在Server中,考虑在窗口聚合函数中使用LEAD()和LEAD()。
在Teradata中,您可以使用窗口聚合函数与n前面的行和前n行之间的行组合起来来回过头来查看'n‘行。
对于Teradata中的一个例子,请查看对问题Compare 3 Consecutive Rows in a table的回答。
https://stackoverflow.com/questions/16173345
复制相似问题