mysql中的group by语句

参考资料:1、SQL语句:Group By总结

一、group by 后面有多个字段

如果group by后面有多个字段,其实和 order by 后的多个字段是差不多的。例如:group by a , b ;将字段a,b共有的多条数据合并,不同的数据则不合并。具体例子如下:

在这里插入图片描述

二、group by 后面的having

group by 后面的having是对分组后的字段进行再次过滤筛查,一般是用聚合函数。如下例子:(对字段a 分组,并且在分组前的数量要大于1)

select a, 
    count(1),
    max(b)
from f 
where a like 'X%'
group by a 
    having count(a) > 1

或者也可以对非分组字段进行聚合函数的筛选

三、HAVING子句可包含一个或多个用AND和OR连接的谓词

四、用HAVING句后,在select后 用count(*)的不同

在这里插入图片描述

SELECT COUNT(*),Ssex FROM Student GROUP BY Ssex;

在这里插入图片描述

五、group by 后的关键字ALL

group by 后的关键字All,如果通过where 条件过滤后,才进行group by 。那么关键字All就是把不满足的条件的数据也全都展示出来。

六、group by 后的关键字CUBE和ROLLUP

首先需要说明的是Group By All 语句是不能和CUBE 和 ROLLUP 关键字一起使用的。

七、使用字段别名的注意事项

由于mysql的执行顺序如下:
from
on
join
where
group by
select
having
order by
limit

由上可知:select后的字段别名,只能在select执行之后的,才能使用。

扫描二维码关注公众号,回复: 12342649 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_43983411/article/details/110316017