1 having子句简介
一个选择语句块的having子句的目的和where子句类似。区别在于where子句用在from子句处理之后选择一行,而having子句用来在group by子句执行以后选择一行,即having是组从组中筛选,而where是从记录中筛选。一个having子句也可以脱离group by子句单独使用。
一般情况下having配合group by与聚合函数,如max/min,avg,sum,count一起使用,聚合函数和其它函数的根本区别就是它们一般作用在多条记录上。where子句条件中的表达式不包含聚合函数。
2 having子句的一般规则
having子句中的所有列指定必须出现在一个聚合函数中,或者出现在group by子句指定的列的列表中。
一个选择语句块的having子句的目的和where子句类似。区别在于where子句用在from子句处理之后选择一行,而having子句用来在group by子句执行以后选择一行,即having是组从组中筛选,而where是从记录中筛选。一个having子句也可以脱离group by子句单独使用。
一般情况下having配合group by与聚合函数,如max/min,avg,sum,count一起使用,聚合函数和其它函数的根本区别就是它们一般作用在多条记录上。where子句条件中的表达式不包含聚合函数。
2 having子句的一般规则
having子句中的所有列指定必须出现在一个聚合函数中,或者出现在group by子句指定的列的列表中。
3.1 创建测试表<