Похоже, что вы забыли закрывающие кавычки в конце "N/A
, и вы можете явно указать имя таблицы (или даже указать псевдоним таблицы для начала) излишне, если у вас только одна таблица, поэтому ваш запрос можно записать как
SELECT Close, Open, Close - Open AS Movement1, LEAD (Close, 1, "N/A") OVER (ORDER BY High) AS Movement2 FROM ES_SourceNT_Day_ADX14;
Но это не проблема. На самом деле у вас нет проблем, если вы используете SQLite версии 3.25.0 или новее , но, к сожалению, в более ранних версиях не было поддержки оконных функций.
См. список изменений .
Что касается моего мыслительного процесса, сначала я просто попытался упростить ваш запрос, удалив все, что казалось правильным, чтобы найти минимальное повторение ошибок, максимально короткий код, который все еще вызывает ошибку. Я пошел так далеко, чтобы сократить его до
SELECT lead(High) OVER (ORDER BY High) FROM ES_SourceNT_Day_ADX14;
тогда
SELECT row_number() OVER (ORDER BY High) FROM ES_SourceNT_Day_ADX14;
Все еще не работал, и я не знал почему, но я начинал подозревать.
Я посмотрел официальную документацию и попытался запустить самый простой пример, но безрезультатно. Вот когда я понял это. SQLite отлично проверен, если такой огромный набор функций вообще не работает, наиболее вероятное объяснение состоит в том, что не должен работать , по крайней мере, в этой версии.
Чтение списка изменений подтвердило мою теорию.