MySQL ORDER BY 十进制值无效

MySQL ORDER BY decimal value not working

带有 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