这个是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后就要用到HAVING 的用法了,就是进行判断了,例如说判断聚合函数的值是否大于某一个值等等.select customer_name,sum(balance) from balance group by customer_name having balance>200; 这个是银行数据库的例子
having 用法与WHERE用法类似,但有三点不同1、HAVING只用于GROUP BY(分组统计语句),2、WHERE 是用于在初始表中筛选查询,HAVING用于在WHERE和GROUP BY 结果中查询.3、HAVING可以使用聚合函数,面WHERE 不能.
where和having的执行级别不同 在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count).having就是来弥补where在分组数据判断时的不足.因为where执行优先级别要快于聚合语句.
having称为分组滤过条件,也就是说是分组需要的条件,所以必须与group by联用 也就是说,聚合函数计算的结果可以当条件来使用,因为它无法放在where里,只能通过having这种方式来解决.
having是一种特殊的条件语句,用在有group by的统计查询中,对统计结果设置条件.例如:select item_name, count(1) as cnt from table_name group by item_name having count(1) > 2即只取记录个数大于2的item_name(注: SQL语句未经过实测).
答案是B,where与having是能同时使用的
Having是筛选组,where是筛选记录.可以这样理解:Having是先分组在进行筛选,而where是先筛选再进行分组.对于有Group by子句的SQL语句,切记与Having组合使用.但不一定要有Having子句.一般情况下分组筛选的时候用Having,其
having 是配合聚合函数来用的比如:select EmpSex,avg(Salary)as 平均工资,count(*) as 员工人数, max(Salary) as 最大值,min(Salary)as 最小值,sum(Salary) as 工资总和 from Employee group by EmpSex having avg(Salary)>5000
having 用在SQL语句中,用于掉不符合条件的组.having 子句中的每一个元素也必须出现在select列表中.有些数据库例外,如oracle.having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制.having子句限制的是组,而不是行.where子句中不能使用聚集函数,而having子句中可以.
用group by后的条件筛选关键字 相当于where havaing一般都是和group by联合使用!