आप एक व्युत्पन्न तालिका में शामिल हो सकते हैं जिसमें बी के प्रत्येक समूह के लिए कुल मूल्य होता है
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 दोनों को टैग किया गया है, इसलिए मुझे यकीन नहीं है कि आप किस डीबी का उपयोग कर रहे हैं। लेकिन पोस्टग्रेज पर आप विंडो फ़ंक्शन का उपयोग कर सकते हैं
select *, avg(a) over (partition by b)
from mytable