Я пытался около 8 часов, но безрезультатно.Я пытаюсь обновить или вставить AVG от 2 до 10 строк из одного столбца в другую таблицу.
Код, который я сейчас использую для вычисления среднего.
SELECT COUNT(*), NAME, AVG(AVERAGE) FROM table1 GROUP BY NAME ORDER BY NAME;
Это возвращаетправильные результаты, так как я использовал group by в качестве обходного пути, но теперь мне нужно перенести эти данные в другую таблицу.
Однако, когда я пытаюсь запустить update или вставить mysql, всегда жалуется на многострочный возврат подзапроса.
Как я могу получить это в table2, где имя совпадает, и в среднее значение столбца для table2?Имя на 100% уникально.Я также хотел бы, чтобы имена совпадали.Это будет обновляться, возможно, один раз в день.
РЕДАКТИРОВАТЬ: Первая таблица ENTRY_ID, ИМЯ (не уникально для нескольких записей), СРЕДНЯЯ таблица вторая имеет ИД (уникальный), ИМЯ (уникальный), СРЕДНИЙ
Я пробовал так много запросов, это не смешно, я искал всю документацию, я просто не собираю что-то правильно.
Когда вы запускаете вышеприведенное, у него может быть 8 строк, он запускает AVG (AVERAGE), возможно, 6 они совпадают по имени.
Я хочу сохранить их в table2, где имя в table1 совпадает симя в таблице 2, но просто дает единственное среднее значение вышеупомянутого запроса.
Спасибо
РЕДАКТИРОВАТЬ2: Это код, который работал
INSERT INTO table2 (NAME, AVERAGE)
(SELECT * FROM
(SELECT NAME, AVG(AVERAGE) as AVERAGE
FROM table1
GROUP BY NAME) main_query)
ON DUPLICATE KEY
UPDATE table2.AVERAGE = main_query.AVERAGE;
Благодаря @ ARubiksCube