Sie können eine Verbindung zu einer abgeleiteten Tabelle herstellen, die den aggregierten Wert für jede Gruppierung von b
enthältselect * from mytable t1
join (
select avg(a), b
from mytable
group by b
) t2 on t2.b = t1.b
oder mit einer Unterabfrage
select *, (select avg(a) from mytable t2 where t2.b = t1.b)
from mytable t1
Die Frage ist sowohl mit mysql als auch mit psql gekennzeichnet, daher bin ich mir nicht sicher, welche Datenbank Sie verwenden. Aber auf Postgres können Sie Fensterfunktionen verwenden
select *, avg(a) over (partition by b)
from mytable