最好对比着 having  给出案例例题 和查询的结果!跪求高手!

解决方案 »

  1.   

    GROUP BY就是进行分组,然后应用聚合函数。练习:查询所有商品类型的平均价格(要求显示类型编号和平均价格)group by 后面可以出现多列。
    对行分组可以使用任何聚合函数。
    GROUP BY子句中出现的列,并不要求一定出现在SELECT子句中。
    练习:在Products表中统计每种类型商品的数量。(显示产品类型编号和数量)
    使用聚合函数的限制:
    如果查询中包含一个聚合函数,而所选择的列并不在聚合函数中,则这些列就必须在group by 子句中。
    就是说如果在一个查询中使用了聚合函数,则所选择的列一定是聚合函数中的列或者是出现在group by子句中的列,其它的列不允许被查询。
    仅仅使用group by会将所有的分组显示出来,如果只想显示满足一定条件的分组,则需要使用having。GROUP BY可以没有HAVING,但HAVING必须有GROUP BY
    练习:查询平均价格大于20的商品的商品类型号和平均价格。
    WHERE和HAVING的关系
    WHERE是用来筛选记录的,而HAVING是用来筛选分组的。