PandaSQLException: (sqlite3.OperationalError) рядом (: синтаксическая ошибка, как это исправить?

Я пытаюсь запросить кадр данных pandas с синтаксисом SQL. Я импортировал import pandasql как ps и загрузил фрейм данных. Затем я ввел этот простой синтаксис:

ps.sqldf(
    """
    SELECT department, first_name, AVG(salary) OVER (PARTITION BY department) AS average
    FROM employee
    GROUP BY department, first_name, salary
    """
    ).head()

он вернул эту ошибку:

PandaSQLException                         Traceback (most recent call last)
<ipython-input-6-2ecbea651075> in <module>
----> 1 ps.sqldf(
      2     """
      3     SELECT department, first_name, AVG(salary) OVER (PARTITION BY department) AS average
      4     FROM employee
      5     GROUP BY department, first_name, salary

~/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pandasql/sqldf.py in sqldf(query, env, db_uri)
    154     >>> sqldf("select avg(x) from df;", locals())
    155     """
--> 156     return PandaSQL(db_uri)(query, env)

~/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pandasql/sqldf.py in __call__(self, query, env)
     61                 result = read_sql(query, conn)
     62             except DatabaseError as ex:
---> 63                 raise PandaSQLException(ex)
     64             except ResourceClosedError:
     65                 # query returns nothing

PandaSQLException: (sqlite3.OperationalError) near "(": syntax error
[SQL: 
    SELECT department, first_name, AVG(salary) OVER (PARTITION BY department) AS average
    FROM employee
    GROUP BY department, first_name, salary
    ]
(Background on this error at: http://sqlalche.me/e/14/e3q8)

Я попытался переписать весь запрос, снова скопировать и вставить из блокнота, но все еще не могу решить проблему (. Не могли бы вы, ребята, сказать мне, как это исправить?


person yts61    schedule 16.05.2021    source источник
comment
Оконные функции поддерживаются в SQLite, начиная с версии 3.25.0. Проверьте свою версию.   -  person forpas    schedule 16.05.2021
comment
вы правы, мой sqlite устарел, это была версия 3.24. Затем я обновил его до 3.35.5 через свой терминал. Но когда я возвращаюсь к своему VSCode и запускаю import sqlite3 sqlite3.sqlite_version в ipynb, он говорит, что это все еще 3.24. Как я могу это исправить? я использую пиен 3.9.0. ,   -  person yts61    schedule 16.05.2021
comment
я снова запускаю brew upgrade sqlite3, он говорит Предупреждение: sqlite3 3.35.5 уже установлен, но ошибка PandaSQLException: (sqlite3.OperationalError) close (: синтаксическая ошибка сохраняется.   -  person yts61    schedule 16.05.2021
comment
я следовал инструкциям здесь до шага 3. 1) Загрузите архив SQLite с sqlite.org/download.html 2) Распаковать содержимое и cd в папку. 3) Запустите следующие команды: ./configure sudo make install   -  person yts61    schedule 16.05.2021
comment
stackoverflow.com/questions/55508830/   -  person yts61    schedule 16.05.2021
comment
я не использую виртуальную среду, поэтому я не знаю, как настроить 4-й шаг, экспортировать LD_LIBRARY_PATH=/usr/local/lib   -  person yts61    schedule 16.05.2021
comment
Я следовал этому, и это работает. stackoverflow.com/questions/55508830/   -  person yts61    schedule 16.05.2021