在group by 中使用HAVING筛选结果
【例31】查询所有价格超过10美元的书的种类和平均价格。
use pubs
go
select type , avg(price) 'avg_price' from titles where price>$10 group by type
go
查询结果如下:
Type avg_price
------------ ------------------
Business 17.3100
mod_cook 19.9900
popular_comp 21.4750
Psychology 17.5100
trad_cook 15.9633
(所影响的行数为 5 行)
【例32】在所有价格超过10美元的书中,查询所有平均价格超过18美元的书的种类和平均价格。
use pubs
go
select type , avg(price) 'avg_price' from titles where price>10 group by type having avg(price)>$18
go
查询的结果是:
Type avg_price
------------ ---------------------
mod_cook 19.9900
popular_comp 21.4750
(所影响的行数为 2 行)
WHERE子句在求平均值之前从表中选择所需要的行,HAVING子句在进行统计计算后产生的结果中选择所需要的行
指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。如果不使用 GROUP BY 子句,HAVING 的行为与 WHERE 子句一样。
语法: [HAVING <search_condition>]
参数: <search_condition>: 指定组或聚合应满足的搜索条件。当 HAVING 与 GROUP BY ALL 一起使用时,HAVING 子句替代 ALL。 在 HAVING 子句中不能使用 text、image 和 ntext 数据类型。