HAVING子句
HAVING子句通常与GROUP BY子句一起使用,以根据指定的条件列表过滤分组。以下是HAVING子句的语法:
在此语法中,GROUP BY子句将行汇总为分组,HAVING子句将一个或多个条件应用于这些每个分组。只有使条件评估为TRUE的组才会包含在结果中。换句话说,过滤掉条件评估为FALSE或UNKNOWN的组。因为SQL Server在GROUP BY子句之后处理HAVING子句,所以不能通过使用列别名来引用选择列表中指定的聚合函数。
以下查询将失败:
必须明确使用HAVING子句中的聚合函数表达式,如下所示:
HAVING子句与COUNT函数示例
查询学习课程小于3门的同学:
HAVING子句与SUM()函数的例子
查询总成绩大于150的同学:
在这个例子中,首先,SUM函数计算成绩的净值。其次,HAVING子句过滤净值大于150的同学。
HAVING子句与AVG()函数示例:
查询平均成绩小于或等于60的同学: