sql语句的groupby是做什么的(深入浅析SQL中的group by 和 having 用法)
sql语句的groupby是做什么的
深入浅析SQL中的group by 和 having 用法一、sql中的group by 用法解析:
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。
作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
注意:group by 是先排序后分组!
举例说明:如果要用到group by 一般用到的就是“每”这个字, 例如现在有一个这样的需求:查询每个部门有多少人。就要用到分组的技术
select DepartmentID as '部门名称',COUNT(*) as '个数' from BasicDepartment group by DepartmentID
这个就是使用了group by +字段进行了分组,其中我们就可以理解为我们按照部门的名称ID
DepartmentID将数据集进行了分组;然后再进行各个组的统计数据分别有多少;
二、group by 和having 解释
前提:必须了解sql语言中一种特殊的函数——聚合函数。
例如:SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
WHERE关键字在使用集合函数时不能使用,所以在集合函数中加上了HAVING来起到测试查询结果是否符合条件的作用。
having称为分组过滤条件,也就是分组需要的条件,所以必须与group by联用。
需要注意说明:当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
1、执行where子句查找符合条件的数据;
2、使用group by 子句对数据进行分组;
3、对group by 子句形成的组运行聚集函数计算每一组的值;
4、最后用having 子句去掉不符合条件的组。
having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
having子句限制的是组,而不是行。聚合函数计算的结果可以当条件来使用,where子句中不能使用聚集函数,而having子句中可以。
总结
以上所述是小编给大家介绍的SQL中的group by 和 having 用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
- mysql高级概念(MySQL 自定义变量的概念及特点)
- mysql重复插入数据教程(Mysql避免重复插入数据的4种方式)
- mysql对null值如何理解(MySQL为Null会导致5个问题个个致命)
- mysql连接查询原理(MySQL连接查询你真的学会了吗?)
- docker部署tomcat(Docker安装Tomcat、MySQL和Redis的步骤详解)
- mysql存储过程遍历数据(Mysql 存储过程中使用游标循环读取临时表)
- sqlserver的图形表(SQL Server纵表与横表相互转换的方法)
- mysql数据库如何删除重复记录(mysql数据库删除重复数据只保留一条方法实例)
- SQL中的cast和convert的用法和区别
- SQL Server的恢复模式
- mysql8.0使用(MySQL 8.0新特性 — 检查性约束的使用简介)
- SQL中AVG、COUNT、SUM、MAX等函数对NULL值处理
- mysql双主状态不一致(MySQL GTID主备不一致的修复方案)
- mysqldump导入导出(MySQL官方导出工具mysqlpump的使用)
- sqlserver备份整表数据的语句(SqlServer批量备份多个数据库且删除3天前的备份)
- mysql数据库事务处理(MySQL数据库事务与锁深入分析)
- 专访 《紧急公关》折射现实生态 主演黄晓明 理性看待 向往美好(紧急公关折射现实生态)
- 庆余年剧组重聚王牌5,宋轶神秘消失,肖战出现一秒抢了李纯风头(庆余年剧组重聚王牌5)
- 巴厘岛旅游攻略(巴厘岛旅游攻略7天多少钱)
- 文莱旅游攻略(文莱旅游攻略介绍)
- 马来西亚旅游攻略(马来西亚旅游攻略自由行攻略)
- 缅甸旅游攻略(缅甸旅游攻略必去景点推荐)
热门推荐
- mysql8.0中如何导入数据(mysql8.0.20数据目录迁移的方法)
- html5的新特性
- sqlserver基础数据类型(SQL Server中T-SQL 数据类型转换详解)
- 微信小程序的交通码(微信小程序中实现车牌输入功能)
- apachemodule定义(使ApacheBench支持multi-url的方法)
- linux hadoop client 连接hbase(使用docker部署hbase的方法)
- sql中where和having可以同时用吗(SQL where条件和jion on条件的详解及区别)
- vue按需引入elementui组件(vue ElementUI实现异步加载树)
- dedecms路径设置(dedecms V5.7修改表前缀的方法及出现不显示文章内容的解决方法)
- python微信自动化(python微信撤回监测代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9