2011-05-28 53 views
0

我试图在sqlite中查找一个小时内数据的最高60秒平均值。SQLite - 时间序列中最高60秒的平均值?

这是我走到这一步:

SELECT MAX(SELECT AVG(watts) 
      FROM tblworkoutdata d2 
      WHERE d2.workoutsummaryid = d1.workoutsummaryid 
       AND d2.ticks BETWEEN d1.ticks AND d1.ticks + 60)) AS theMax 
    FROM tblworkoutdata d1 
WHERE workoutsummaryid = 198 

各记号代表第二。 “瓦”是我试图找到最高平均值的领域。 WorkoutSummaryID仅代表锻炼。

上面的代码说太多的括号在sqlite中。有人知道如何在时间序列上获得最高60秒的平均值?

+6

那么,对于一两件事:你** **做一个有paranthesis太多(你的代码的4号线) – ChrisWue 2011-05-28 07:37:05

+3

其实他有相符的一个缺失1 ...(用于MAX功能的开括号,以及用于相关子查询的开头的开括号。) – MatBailie 2011-05-28 09:55:16

回答

2

在您的声明中确实有太多右括号。您周围是否缺少子查询的左括号:

SELECT MAX((SELECT AVG(watts) 
      FROM tblworkoutdata d2 
      WHERE d2.workoutsummaryid = d1.workoutsummaryid 
       AND d2.ticks BETWEEN d1.ticks AND d1.ticks + 60)) AS theMax 
FROM tblworkoutdata d1 
WHERE workoutsummaryid = 198 
4
SELECT MAX((SELECT AVG(watts) 
      FROM tblworkoutdata d2 
      WHERE d2.workoutsummaryid = d1.workoutsummaryid 
       AND d2.ticks BETWEEN d1.ticks AND d1.ticks + 60)) AS theMax 
    FROM tblworkoutdata d1 
WHERE workoutsummaryid = 198