Есть таблица с сгруппированными строками, которые имеют значение в одном столбце, но очень редко отличаются в другом столбце.
Мне нужно обновить ниже portfolio_id
, если они не отличаютсяили, оптимально, по крайней мере, не отличаются в 90% случаев (хотя я понимаю, что это может быть сложно).
Структура таблицы
mytable1
table1id | parentgroup | portfolio_id
1 | 100 | 3
2 | 100 | 3
3 | 100 | 3
4 | 203 | 4
5 | 203 | 5
6 | 500 | 7
mytable2
вместе с намеченным результатом
count | parentgroup | portfolio_id
3 | 100 | (trying to fill with a 3)
2 | 203 | (shouldn't fill since half the dots are split within 2 portfolios)
1 | 500 | (trying to fill with a 7)
Мой запрос выглядит как
update mytable2 a
set portfolio_id = (select portfolio_id from mytable1 b
where a.parentgroup = b.parentgroup)
where parentgroup is not null
Но, очевидно, я получаю ошибку
Ошибка SQL [21000]: ОШИБКА: более одной строки, возвращенной подзапросом, использованным в качестве выражения
Как обойти это?