sql - ORDER BY 与 HAVING 子句一起使用时出错

标签 sql sql-order-by having-clause

我正在尝试使用一些基本的 SQL 函数。我需要获取一些数据的平均值并按降序排列。我得到的错误是“不允许组函数”

表:

STUDENTS
-----------
ID
CLASS
GRADE
ROOM

SQL:

    SELECT ID, class, AVG(Grade) AS AvgGrade
      FROM Students
     GROUP BY AVG(Grade)
    HAVING AVG(Grade) >= 3.0
     ORDER BY AVG(Grade) DESC

我被告知 ORDER BY 不能与 HAVING 子句一起使用,我需要重复该函数。有帮助吗?

最佳答案

GROUP BY avg(Grade) 没有任何意义。

GROUP BY 表达式定义了您希望应用聚合的组。

大概你需要GROUP BY ID, class

关于sql - ORDER BY 与 HAVING 子句一起使用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7478356/

相关文章:

sql - 如何从Rails的数据库列中删除唯一约束?

java - 用于检索复杂实体的高效 JPQL 查询

sql - 是否有一种[直接的] 方式来使用 SQL 对结果进行排序 *首先*,*然后* 按另一列分组?

带有 AND 和 OR(包含和排除子句)的 HAVING COUNT(DISTINCT) 的 mySql 查询

mysql - SQL:查找商店的唯一客户时出现问题

php - 尝试在 PHP 中更新数据库时出现 Mysql 错误,并重定向到 null 位置

mysql - 按最常见类型的顺序获取电影,然后是关键字

java - eclipselink @orderby 可比

mysql - Group by 也是 order by?

sql - HAVING 的参数必须是 bool 类型,而不是整数类型