SQL中having,mysql group by having 子句

 2023-12-25 阅读 26 评论 0

摘要:group by 先來看一個例子,理解一下group by 的用法 和 功能 例如這張表 然后執行 select Email, count(Email) as num from Person group by Email; 效果如下 如果接下來 你還不能理解 執行sql SELECT name FROM test GROUP BY name SQL中having?構建一個虛擬表 group

group by

先來看一個例子,理解一下group by 的用法 和 功能
例如這張表在這里插入圖片描述
然后執行

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

效果如下
在這里插入圖片描述

如果接下來 你還不能理解
在這里插入圖片描述
執行sql

SELECT name FROM test GROUP BY name

SQL中having?構建一個虛擬表
在這里插入圖片描述
group by 多個字段該怎么理解呢:如group by name,number,我們可以把name和number 看成一個整體字段,以他們整體來進行分組

在這里插入圖片描述
如執行

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

效果如圖
在這里插入圖片描述
注意 :

  • group by 子句中的分組依據列必須是表中存在的列名 ,不能使用 as 子句指派的列別名。
  • 帶有 group by 子句的select 語句的查詢列表中只能出現分組依據列,因為,因為分組后的每個組只返回一行數據。

having

  • having 子句 用于對分組后的結果再進行篩選 ,它的功能有點兒像where 子句,但是它是專門用于組 而不是記錄。
  • 在having 子句中可以使用統計函數,而在where 子句中不能。
  • having 子句通常跟group by 子句一起使用

附力扣原題,以助理解
在這里插入圖片描述

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/194713.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息