SQL查询进行计数,然后按升序对计数进行排序

SQL查询进行计数,然后按升序对计数进行排序,sql,count,Sql,Count,我有一个SQL查询来计算至少有15条记录的评级数量,然后按平均评级排序 下面是我的想法: SELECT name, COUNT(rate) FROM RateTable WHERE rating = 5 GROUP BY name HAVING COUNT(rate) > 15 ORDER BY AVG(rate) ASC; 它确实过滤了那些记录少于15条的产品,但是结果没有按顺序排序。有什么想法吗 提前谢谢 编辑 姓名计数(比率)平均值(比率) 产品1205 产品2 18 5 产品3

我有一个SQL查询来计算至少有15条记录的评级数量,然后按平均评级排序

下面是我的想法:

SELECT name, COUNT(rate) FROM RateTable
WHERE rating = 5
GROUP BY name
HAVING COUNT(rate) > 15
ORDER BY AVG(rate) ASC;
它确实过滤了那些记录少于15条的产品,但是结果没有按顺序排序。有什么想法吗

提前谢谢

编辑

姓名计数(比率)平均值(比率) 产品1205 产品2 18 5
产品3 17 5

这可能是由于ORDER BY子句中聚合函数的使用不当,存在一定的局限性。以下链接可能会帮助您。。。
SELECT * FROM 
(
    SELECT name, COUNT(rate), AVG(rate) as Rate FROM RateTable
    WHERE rating = 5
    GROUP BY name
    HAVING COUNT(rate) > 15
) as Result ORDER BY Rate ASC


祝您好运。

这可能是由于在ORDER BY子句中不正确使用聚合函数造成的,有一定的局限性。以下链接可能会帮助您。。。



祝你好运。

我知道这是非常标准的SQL,但是你最好告诉我们你正在使用什么RDBMS。一个最小的、简单的、完整的例子也会有所帮助。乍一看,我没有发现这个查询有任何错误。你能告诉我们实际结果吗?对不起,因为我是新来的,所以我被禁止发布图片。我的结果是:产品120、产品215、产品318、产品417。我使用的是MSSQL,最好不要发布图片。您可以将这些数据(格式化)添加到原始问题中。好的。。但你展示的是计数,而不是平均值。你怎么知道它的顺序不正确呢?我知道它是非常标准的SQL,但是你最好告诉我们你正在使用什么RDBMS。一个最小的、简单的、完整的例子也会有所帮助。乍一看,我没有发现这个查询有任何错误。你能告诉我们实际结果吗?对不起,因为我是新来的,所以我被禁止发布图片。我的结果是:产品120、产品215、产品318、产品417。我使用的是MSSQL,最好不要发布图片。您可以将这些数据(格式化)添加到原始问题中。好的。。但你展示的是计数,而不是平均值。你怎么知道它的顺序不正确?它在“Result”处显示了不正确的语法,应该是ID或quoted_ID。是的,下面有红色的错误线。顺便说一句,我正在使用MSSQL对不起,但是OP说他想要按平均评级排序的结果。您正在按计数排序。@Insac您的编辑应该是对此帖子的另一个答案或评论,而不是编辑。虽然您使用的是mysql Sorry,但在“结果”处显示的语法不正确,应为ID或quoted_ID。是的,下面有红色错误线。顺便说一句,我正在使用MSSQL对不起,但是OP说他想要按平均评级排序的结果。您是按计数排序的。@Insac您的编辑应该是对此文章的另一个答案或评论,而不是编辑。啊,我想您是在使用mysql,对不起