Ошибка MySQL при использовании over () и псевдоним

0

Используя консоль phpMyAdmin и MariaDB 10.2, если я комбинирую функцию over() с псевдонимом, я получаю множество ошибок:

SELECT AVG(foo) OVER() AS bar FROM some_table
  • ранее был найден псевдоним (около бара)
  • неожиданный токен (около бара)
  • ожидался псевдоним (рядом) <- просто пустое пространство

эти утверждения с одной из функций не дают мне ошибок

SELECT AVG(foo) AS bar FROM some_table

SELECT AVG(foo) OVER() FROM some_table

Все, что я могу найти, подразумевает, что эти ошибки исходят из основных ошибок, таких как отсутствие запятой или использование зарезервированных ключевых слов в качестве псевдонимов. Я не думаю, что я это делаю.

  • 0
    Какова цель использования OVER() здесь?
  • 0
    Это просто упрощенный пример синтаксического паттерна. Я пытаюсь использовать OVER () для вычисления линейной регрессии в более сложном запросе. Чтобы рассчитать линейную регрессию, мне нужно выполнить операцию с каждым отдельным значением и со средним значением для этой группы значений.
Теги:
mariadb
function
phpmyadmin

1 ответ

1

По-видимому, linter, который phpMyAdmin использует для проверки синтаксиса, не был обновлен для этого синтаксиса, который, кажется, был введен с MariaDB 10.2. Хотя это раздражает, вы можете игнорировать предупреждения и выполнять свой запрос в любом случае.

Я открыл отчет об ошибке на https://github.com/phpmyadmin/sql-parser/issues/197, где вы можете следить за тем, пока ошибка не будет исправлена.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню