Bạn có thể tham gia vào một bảng dẫn xuất có chứa giá trị tổng hợp cho mỗi nhóm b
select * from mytable t1
join (
select avg(a), b
from mytable
group by b
) t2 on t2.b = t1.b
hoặc sử dụng truy vấn con
select *, (select avg(a) from mytable t2 where t2.b = t1.b)
from mytable t1
câu hỏi được gắn thẻ cả mysql và psql, vì vậy tôi không chắc bạn đang sử dụng db nào. Nhưng trên postgres, bạn có thể sử dụng các chức năng cửa sổ
select *, avg(a) over (partition by b)
from mytable