Я нашел решение, довольно простое на самом деле. Вы подсчитываете каждую звезду по отдельности, а затем суммируете их и делите их на общее количество.
"rating":
(
(count(*[_type=='review' && references(^._id) && rating == 1]) * 1) +
(count(*[_type=='review' && references(^._id) && rating == 2]) * 2) +
(count(*[_type=='review' && references(^._id) && rating == 3]) * 3) +
(count(*[_type=='review' && references(^._id) && rating == 4]) * 4) +
(count(*[_type=='review' && references(^._id) && rating == 5]) * 5)
) / count(*[_type=='review' && references(^._id)])
Я полагаю, что для Sanity это довольно дорого, и это немного многословно, поэтому я все еще заинтересован в других решениях.