Uncaught Error: near "(": синтаксическая ошибка при выполнении явно правильного оператора в SQLite - PullRequest
0 голосов
/ 16 сентября 2018

Следующий синтаксис отлично работает в Postgresql:

SELECT
    rev_count.RevName,
    rev_count.MovTitle
FROM
    (SELECT
         rev.name as RevName,
         m.title as MovTitle,
         rat.stars as OrginalRat,
         rat.ratingDate as RatingDate,
         count(rat.stars) OVER (PARTITION BY rev.name, m.title) as RevCount,
         lead(rat.stars, 1) OVER (PARTITION BY rev.name, m.title ORDER BY rat.ratingDate) as NewRat
    FROM
        rating as rat
    LEFT JOIN
        reviewer as rev
    ON
        rat.rid = rev.rid
    LEFT JOIN
        movie as m
    ON
        rat.mid = m.mid) as rev_count
WHERE 
    rev_count.RevCount = 2
    AND rev_count.NewRat IS NOT NULL
    AND rev_count.NewRat > rev_count.OrginalRat

, но я получаю следующую ошибку в SQLite: Uncaught Error: near "(": синтаксическая ошибка

любые подсказки, почемуя подозреваю, что это как-то связано с псевдонимом, но не совсем точно знаю, где проблема.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Этот запрос прекрасно работает в SQLite 3.25.0.(Более ранние версии еще не имели оконных функций.)

0 голосов
/ 16 сентября 2018

Ваш запрос в целом содержит синтаксическую ошибку, поэтому он не будет работать вообще. Вы можете проверить синтаксис здесь: https://www.eversql.com/sql-syntax-check-validator/ SQLite не поддерживает некоторые функции, доступные в движках БД, таких как PostreSQL или mySQL. Пожалуйста, обратитесь к документации для деталей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...