发布时间:2025-12-10 23:09:09 浏览次数:1
having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。
先查询分类cid下id的统计数目
select cid,count(id) nums from table_name group by cid 结果如下:
然后可以用having对统计的数据进一步筛选,比如nums大于2的数
select cid,count(id) nums from xzyd_question group by cid HAVING nums>2
注意:having后的判断字段必须是聚合函数返回的结果
补充:
where子句和having子句的区别:
1.where 不能放在group by后面
2.having 是跟group by连在一起用的,放在group by 后面,此时的作用相当于where
3.where后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING可以。
一、where子句
where子句:where子句仅仅用于从from子句中返回的值,from子句返回的每一行数据都会用where子句中的条件进行判断筛选,where子句中允许使用比较运算符和逻辑运算符
二、having子句
having子句:having子句通常是与order by子句一起使用的,因为having的作用是对使用groupby进行分组统计后的结果进行进一步的筛选。
上述就是小编为大家分享的mysql数据库中having的使用方法了,如果您也有类似的疑惑,不妨参照上述方法进行尝试。如果想了解更多相关内容,请关注本站行业资讯。