SQLite - высшее среднее 60 секунд во временном ряду? - PullRequest
0 голосов
/ 28 мая 2011

Я пытаюсь найти самое высокое среднее значение за 60 секунд за час данных в sqlite.

Вот что я получил до сих пор:

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-секундное среднее значение за временной ряд?

Ответы [ 2 ]

4 голосов
/ 28 мая 2011
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
2 голосов
/ 28 мая 2011

В вашем утверждении действительно слишком много заключительных скобок.Отсутствует открывающая скобка вокруг подзапроса:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...