在group by 中使用HAVING筛选结果

来源:互联网 发布:掌阅ireader刷阅饼软件 编辑:程序博客网 时间:2024/05/04 08:55

在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 数据类型。