Как исправить синтаксическую ошибку в операторе SQLite NTILE? - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь выполнить запрос в SQLite, который выглядит так:

SELECT var_1, 
var_2, 
NTILE(4) OVER (
  GROUP BY var_1,
  ORDER BY var_3
) AS quartile
FROM
table

Однако, когда я пытаюсь запустить этот код, я получаю сообщение об ошибке «Ошибка при выполнении запроса SQL на database: near "(": syntax error '.

В качестве альтернативы, раньше я получал сообщение об ошибке:' Ошибка при выполнении SQL запроса к базе данных: нет такой функции: NTILE. '

Кто-нибудь знает, что я делаю не так?

(Обратите внимание, что приведенный ниже запрос работает нормально.)

SELECT var_1, 
var_2, 
var_3
FROM
table

1 Ответ

0 голосов
/ 10 июля 2020

В правильном синтаксисе для NTILE () используется «PARTITION BY» вместо «GROUP BY», поэтому ваш запрос должен быть:

SELECT var_1, 
       var_2, 
       NTILE(4) OVER (
           PARTITION BY var_1
           ORDER BY var_3
       ) AS quartile
FROM
table
...