0 mysql sql average sum group-concat
SELECT *,
Group_concat(rating) AS rating_total,
Sum(rating_total) AS rating_sum,
Avg(rating_sum) AS rating_avg
FROM ratings
GROUP BY pid
Run Code Online (Sandbox Code Playgroud)
由于某种原因,总和和平均值不执行....你如何使这个陈述有效?
由于SQL编译查询的方式(我假设MySQL使用GROUP_CONCAT),因此不能在order by子句之前引用别名列名.SUM和AVG函数不是程序性的.它们是并行完成的.这意味着他们无法依赖.
其次,GROUP_CONCAT返回一个字符串,而不是一个数字.你怎么希望SUM/AVG那个?只需SUM和AVG评级栏本身.
现在,鉴于此,您可以:
SELECT
pid,
GROUP_CONCAT(rating) AS rating_total,
SUM(rating) as rating_sum,
AVG(rating) as rating_avg
FROM
rating
GROUP BY
pid
Run Code Online (Sandbox Code Playgroud)
这应该可以满足您的需求.