MySql|mysql group by having 子句

group by 先来看一个例子,理解一下group by 的用法 和 功能
例如这张表MySql|mysql group by having 子句
文章图片

然后执行

select Email, count(Email) as num from Person group by Email;

效果如下
MySql|mysql group by having 子句
文章图片

如果接下来 你还不能理解
MySql|mysql group by having 子句
文章图片

执行sql
SELECT name FROM test GROUP BY name

构建一个虚拟表
MySql|mysql group by having 子句
文章图片

group by 多个字段该怎么理解呢:如group by name,number,我们可以把name和number 看成一个整体字段,以他们整体来进行分组
MySql|mysql group by having 子句
文章图片

如执行
select name,sum(id) from test group by name,number

效果如图
MySql|mysql group by having 子句
文章图片

注意 :
  • group by 子句中的分组依据列必须是表中存在的列名 ,不能使用 as 子句指派的列别名。
  • 带有 group by 子句的select 语句的查询列表中只能出现分组依据列,因为,因为分组后的每个组只返回一行数据。
having
  • having 子句 用于对分组后的结果再进行筛选 ,它的功能有点儿像where 子句,但是它是专门用于组 而不是记录。
  • 在having 子句中可以使用统计函数,而在where 子句中不能。
  • having 子句通常跟group by 子句一起使用
【MySql|mysql group by having 子句】附力扣原题,以助理解
MySql|mysql group by having 子句
文章图片

select Email from Person group by Email having count(Email) > 1;

    推荐阅读