Я пытаюсь обновить таблицу в моей базе данных, используя ROW_NUMBER в mysql.
Таблица stats
:
id value value_rank
-------------------------------
1 635550348443 NULL
2 615342703162 NULL
3 968101508609 NULL
4 976724336509 NULL
5 978154497567 NULL
Я пытался использовать только ROW_NUMBER
как:
SELECT id, value, ROW_NUMBER() OVER w AS value_rank FROM stats WINDOW w AS (ORDER BY value DESC)
и получил следующий результат:
id value value_rank
-------------------------------
5 978154497567 1
4 976724336509 2
3 968101508609 3
1 635550348443 4
2 615342703162 5
Затем я попытался обновить value_rank с помощью этого оператора:
UPDATE stats
(SELECT id, value, ROW_NUMBER() OVER w AS rank FROM stats WINDOW w AS (ORDER BY value DESC)) as ranks
SET stats.value_rank = ranks.rank
WHERE stats.id = ranks.id;
Однако я получил следующая ошибка:
Ошибка в запросе (1064): синтаксическая ошибка рядом с '(SELECT id, value, ROW_NUMBER () OVER w AS rank ОТ статистики STD WINDOW w AS (O' в строке 2
Я использовал этот запрос после следования этой документации (последний абзац)
Что я делаю не так?