MySQL. Значение в поле в записях поделить на максимальное значение этого поля
Всем привет. Подскажите пожалуйста как быть. Есть таблица, она у меня формируется после выборки, выглядит так:
Код выборки
Результат:
Нужно же получить вот такой результат
Т.е. значение sumrunk делится на максимальное значение этого поля и сохраняется в поле rel
Пробовал так
Ошибка Error Code: 1146. Table 'search_engine.t1' doesn't exist
Ну тут понятно, таблица t1 еще не создалась, а я уже максимум по полю ищу.
пробовал еще так:
В результате выходит только первая запись
Нашел пока только такое решение. Выборка сохраняется как таблица t1, находим в ней максимум по полю sumrunk. И потом еще раз делаю выборку создается таблица t2 и пробегаю по каждой записи.
По тз создавать новые таблицы не рекомендовано, поэтому делаю через AS. Так то все работает. Но есть ли какое нибудь решение короче и компактнее?
Ответы (1 шт):
DEMO
Исходные данные:
CREATE TABLE test (page_id INT, `rank` INT);
INSERT INTO test VALUES
(1,1),(1,2),(1,3),(2,4),(2,5),(3,4),(3,3),(3,2);
Запрос:
SELECT page_id,
SUM(`rank`) / MAX(SUM(`rank`)) OVER () rel
FROM test
-- WHERE ...
GROUP BY page_id;






