Considérez ci-dessous
select * except(market_offers),
round(market_offers / count(1) over(partition by market_offers, rank), 2) as market_offers
from `project.dataset.table`
si appliqué à des exemples de données dans votre question - la sortie est