Du kan slutte dig til en afledt tabel, der indeholder den samlede værdi for hver gruppering af b
select * from mytable t1
join (
select avg(a), b
from mytable
group by b
) t2 on t2.b = t1.b
eller ved at bruge en underforespørgsel
select *, (select avg(a) from mytable t2 where t2.b = t1.b)
from mytable t1
spørgsmålet er tagget både mysql og psql, så jeg er ikke sikker på, hvilken db du bruger. Men på postgres kan du bruge vinduesfunktioner
select *, avg(a) over (partition by b)
from mytable