MariaDB: ошибка 1064 с использованием COUNT (*) OVER () - PullRequest
0 голосов
/ 02 августа 2020

У меня есть рабочий MySQL запрос, который выглядит так:

SELECT COUNT(*) OVER () AS nrows 
FROM warehouse_entries we
LEFT JOIN registry_entities sup ON we.supplier_id=sup.id 
LEFT JOIN invoices i ON i.id=we.invoice_id
[...]
GROUP BY we.id 

Пробуя его в MariaDB, я получаю эту ошибку:

Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '() as nrows 

Я просмотрел документацию, попытался добавить некоторую информацию о разделах, которую можно найти, но она не работает. Есть подсказки?

Спасибо.

1 Ответ

1 голос
/ 02 августа 2020

«Оконные» функции, такие как OVER(...), недоступны до MariaDB 10.2 (и MySQL 8.0).

(Это редкий случай, когда 1064 не указывает на лучшее место. Это должен был указывать только перед OVER, но проверка синтаксиса, вероятно, увидела "поверх" как псевдоним для COUNT(*), за которым может следовать только , или FROM, поэтому вместо этого он пожаловался примерно ().)

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