#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;
Смотрите упрощенную демонстрацию.