当前位置:   article > 正文

group by 和 having_group by having

group by having

一、group by

        数据分组,按照逻辑次序把具有重复的字段进行合并,是通过 select 语句里使用 group by 子句实现的。

        group by子句与 select 语句配合使用,把相同的数据划分为组,group by 子句在 where 子句之后,在 order by 子句之前,这个子句对 cpu 的运行效率有很大影响。

        group by子句一般和汇总函数(sum、avg、max、min、count)一起使用。

1.1 数据分组

        数据分组是个简单的过程。被选中的字段(查询中 select 之后的字段列表)才能在 group by 子句里引用若字段在 select 语句中找不到,就不能用于 group by 子句(会报错)

        当 group by 后面的字段不在 select 语句中时

       当 group by 后面的字段在 select 语句中时:

        当 select 语句有两个字段,但只有一个字段进行 group by 时:

        当 select 语句有两个字段,有两个字段进行 group by 时:

        select 语句后面有几个字段,group by 后面就必须跟几个字段。group by 后面的字段位置不同,输出的结果也不同。

       先按照 age 排,再按照 city

        先按照 city 排,再按照 age 

         汇总函数出现的字段不是必须出现在 group by 后面

1.2 总结

        group byorder by 相同点在于他们都是对数据进行排序。order by 子句专门用来对查询得到的数据进行排序。

        group by 子句也把查询得到的数据排序为适当的分组的数据(order by 排完了就完了,group by 排完再把相同的元素分个组)。

        不能在视图中使用 order by 子句

1.3 group by 缺点

        1、所有被选中的、非汇总函数的字段必须列在 group by 子句里。

        2、除非使用汇总函数,否则使用 group by 子句进行排序通常是没有必要的

二、Having

        having 子句在 select 语句里与 group by子句联合使用时,用于告诉 group by子句在输出里包含哪些组,having 对于 group by 的作用相当于 where 对于 select 的作用,即设定条件用的。使用 having 子句可以让结果集里包含或去除整组的数据

        having 子句必须跟在 group by 子句后,在 order by子句之前

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/400047
推荐阅读
相关标签
  

闽ICP备14008679号