bの各グループの集計値を含む派生テーブルに参加できます
select * from mytable t1
join (
select avg(a), b
from mytable
group by b
) t2 on t2.b = t1.b
またはサブクエリを使用する
select *, (select avg(a) from mytable t2 where t2.b = t1.b)
from mytable t1
質問にはmysqlとpsqlの両方のタグが付けられているため、使用しているデータベースがわかりません。ただし、postgresではウィンドウ関数を使用できます
select *, avg(a) over (partition by b)
from mytable