Если вам надо производить такие вычисления, то у вас архитектурно неправильно реализовано. Такие данные нужно хранить не в postmeta, а в отдельной таблице. Структура, грубо (назовем таблицу post_ratings):
id | post_id | user_id | rating
-------------------------------------
1 | 189 | 34 | 4
Именно по этой таблице делаете начальную выборку с просчетом среднего рейтинга и сортировкой, на выходе получаете список post_id. Их потом передаете в WP_Query через параметр post__in.
Как вариант, можно "кешировать" средний, уже просчитанный, рейтинг в таблице postmeta, в виде одного int. Пересчитывать его либо каждый раз при добавлении новой записи в кастомную таблицу (запросом или отправкой в очередь), либо кроном раз в какое-то время.