Ошибка при выполнении SQL-запроса к базе данных «ПОГОДА»: рядом «(«: синтаксическая ошибка

#sql #sqlite #window-functions

#sql #sqlite #окно-функции

Вопрос:

У меня есть эта задача на sql, где я должен выбрать некоторые конкретные строки из таблицы в моей базе данных на основе различий между строками в таблице, но я продолжаю получать ошибку при выполнении SQL-запроса к базе данных «ПОГОДА»: рядом «(«: синтаксическая ошибка .. пожалуйста, что я делаю не так, любойпомощь была бы признательна.

 SELECT
    *
    ,LAG(TempHighF,1,0) OVER(ORDER BY Date) AS previousTempHigh
FROM
    weatherdata
WHERE
    TempHighF - previousTempHigh >= 10;
 

Комментарии:

1. У меня версия 3.30.0 @forpas

2. Проверьте мой ответ.

Ответ №1:

Вы не можете использовать столбец previousTempHigh , который на самом деле является оконной функцией с псевдонимом в WHERE предложении.
Используйте подзапрос:

 SELECT *
FROM (
  SELECT *, LAG(TempHighF,1,0) OVER(ORDER BY Date) AS previousTempHigh
  FROM weatherdata
)  
WHERE TempHighF - previousTempHigh >= 10;
 

Смотрите упрощенную демонстрацию.