Из-за способа, которым SQL компилирует запросы (я полагаю, MySQL, так как вы используете GROUP_CONCAT), вы не можете ссылаться на псевдонимы столбцов перед предложением order by. Функции SUM и AVG не являются процедурными . Они сделаны параллельно. Это означает, что они не могут быть зависимыми.
Во-вторых, GROUP_CONCAT возвращает строку, а не число. Как вы надеетесь, что СУММ / AVG? Просто СУММА и AVG колонка рейтинга сама по себе.
Теперь, учитывая это, вы можете сделать:
SELECT
pid,
GROUP_CONCAT(rating) AS rating_total,
SUM(rating) as rating_sum,
AVG(rating) as rating_avg
FROM
rating
GROUP BY
pid
Это должно дать вам то, что вы ищете.