用户在使用SQL语言的过程中可能希望解决的一个问题就是对由sum或其它集合函数运算结果的输出进行限制。例如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从句。语法格式为:
SELECT "column_name1", SUM("column_name2")
FROM "table_name"
GROUP BY "column_name1"
HAVING (arithematic function condition)
(GROUP BY从句可选)
由此,我们可以使用如下命令实现上述查询目的:
SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500
和where的区别是有的如下面的例子:
select 系号, count(*);
from 表1 ;
group by 系号;
where 性别="女"
select 系号, count(*);
from 表1 ;
group by 系号;
having 性别="女"
这两个sql运行的结果不一样的.
第一个是正确的.
第二个是错误的.
因为一个系有男有女的,你这个分组条件是永远不起作用.
只要一个系中有一个女的,就会满足条件统计整个系的人数.
同时统计人数时候,也包括男在内.
having只不过是排除不满足having后的条件的某个分组.
假如一个系中无女,那么这个系不统计人数.
而where是把男生记录先排除了.在统计.
不用where统计人数也包括在内,达不到你的目的.
where是对整个表的数据进行筛选,
haing是对分组筛选,只要满组条件该组会出现在结果的.
网上搜的小总结,恩!!可以看一点!!!! 嘿嘿
浙公网安备 33010602011771号