带有 order by
子句的 SQL 查询无法正常工作。
VALUES:
5.0000
4.0000
4.5000
4.7500
4.0000
5.0000
查询:
SELECT AVG(rating) as rating
FROM review
GROUP BY id
ORDER BY CAST(`rating` as signed) DESC
当我执行这个查询时,输出是:
5.0000
4.7500
4.5000
5.0000
4.0000
4.0000
我的评级列是 int(10)
。
最佳答案
您必须按 AVG(rating)
而不是 rating
SELECT AVG(rating) as rating FROM review GROUP BY id ORDER BY AVG(rating) DESC
在您的例子中,别名和列具有相同的名称。为了避免混淆,你可以这样做:
SELECT AVG(rating) as avgrating FROM review GROUP BY id ORDER BY avgrating DESC
关于MySQL ORDER BY 十进制值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42526952/