MYSQL中where子句与having子句的区别

一。作用上的区别

having 子句和 where 子句均用于过滤数据,两者的区别在于:where 子句对结果集进行过滤筛选,而 having 子句则对分组的结果进行筛选。

例:统计公交公司为非“通恒公司”的最长线路里程大于 24 的分组信息,按最长线路里程数升序显示。

MYSQL中where子句与having子句的区别_第1张图片

 二。功能上的区别

group by 子句的 with rollup 选项:group by 子句将结果集分为若干个组,使用聚合函数可以对每个组内的数据进行信息统计,有时对各个组进行汇总计算时,需要在分组之后再加上一条汇总记录,这个任务可以通过 with rollup 选项来实现

例:统计每个公交公司的线路数量,并在查询结果集的最后一条记录后附上所有公交公司的总线路数。

MYSQL中where子句与having子句的区别_第2张图片

 

你可能感兴趣的:(mysql)