Ошибка MySQL: что не так с моим синтаксисом для ранжирования? - PullRequest
1 голос
/ 22 мая 2019

Моя версия MySQL 5.6.
У меня есть запрос MySQL, который я получаю сообщение об ошибке, и мне нужна помощь, чтобы понять, что я делаю неправильно.

Вот запрос:

select images.thumbnail16x9_file,
       images.square_file,
       RANK() OVER (ORDER BY images.timestamp desc) rank
from images 
where images.media_id = 875021;

Это сообщение об ошибке:

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '(ORDER BY images.timestamp) rank
из изображений, где images.media 'в строке 3

Я получу результат обратно, если сделаю:

select images.thumbnail16x9_file,
       images.square_file
from images 
where images.media_id = 875021 ;

Есть идеи?

1 Ответ

1 голос
/ 22 мая 2019

Поскольку вы упомянули о запуске MySQL 5.6, я сравнил документацию для 5.6 с документацией 8.0 и заметил, что функция RANK () может быть недоступна в MySQL 5.6.

Документация для MySQL 5.6 существует здесь , а для 8.0 существует здесь .

Поиск функции RANK () в 8.0 возвращает раздел под названием «Описания оконной функции», который, по-видимому, охватывает функцию RANK ()при выполнении того же поиска в 5.6, похоже, ничего не возвращает о функции.Я не уверен на 100% в этом, но определенно попытался бы найти ссылку на функцию RANK () в документации 5.6 для пояснения.

...