mysql中group by 分组函数详解 及 查询总结
2019-02-15 00:14
1066 查看
官方定义:
分组: 按照某一列或者某几列。把相同的数据,进行合并输出。
完整写法:
select … from … group by 列名,列名
注意:
1、聚合函数:分组之后进行计算;
2、通常 select后面的内容是被分组的列,以及聚合函数;
分组有一个特点:
一旦使用了分组函数,那么最终在显示的时候,只能显示被分组的列或者聚合函数。
group by 与 having 的用法
在sql语句中的where 后面不允许添加聚合函数,添加就会报错。
关于 having 的用法解释:
表示分组之后的条件,在having后面可以书写聚合函数。
having和group by 一起使用,having和where的用法一模一样,where怎么使用having就怎么使用,where不能使用的,having也可以使用,比如说where后面不可以使用聚合函数,但是在having后面是可以使用聚合函数的。
where 与 having 的区别
1、having 通常与group by 分组结合使用。 where 和分组无关。
2、having是从筛选出来的字段再筛选,而where是从数据表中的字段直接进行的筛选的。
3、where 后面的条件可以写在having 中,但是 having中的条件不一定能写在where中。
having 可以书写聚合函数 (聚合函数出现的位置: having 之后)
例如having中的 聚合函数(count,sum,avg,max,min),是不可以出现where条件中。
4、where 是在分组之前进行过滤的。having 是在分组之后进行过滤的。
查询总结:
Count(字段) 作用 统计个数 Sum(字段) 作用 求和运算 Avg(字段) 作用 求平均值 Max(字段) 作用 求最大值 Min(字段) 作用 求最小值 Group by 作用 分组查询 Having 作用 关联条件 与where一样 只是支持聚合函数的使用!!! 查询关键字的出现的顺序是固定的 select …要显示的内容.. from …表名.. where 条件…. group by …分组的列 …having …分组后的条件… order by …排序 select …5… from …1.. where …2.. group by ..3…having ..4… order by .6. 查询的执行顺序: 1)from : 表名 2)where:条件过滤 3)group by : 分组 4)having : 分组之后进行过滤。 5)select :执行完毕之后,显示内容。 6)order by : 根据查询的内容进行排序输出.
from 表名 where 条件: 逻辑运算符:and or not 比较运算符:> < >= <= <> = != 在....之间:between...and in(): 只要在in(值1,值2...)满足任意一个值就可以 类似java switch 模糊匹配:like %任意个 _一个字符 is null/is not null group by 列:对列进行分组。 having 条件: 逻辑运算符:and or not 比较运算符:< > <= >= <> = 在....之间:between...and... in(set) is null/is not null 模糊匹配:like % _ Having 后 可以跟聚合函数 不使用聚合函数用where 聚合函数(sum,avg,max,min,count) Where跟的条件 having都可以 而且 having还可以跟 聚合函数 where不可以 having单独使用的时候的条件在查询中的字段必须包含!!! order by desc(降序)/asc(升序,默认)
相关文章推荐
- MySQL分组查询Group By实现原理详解
- MySQL分组查询Group By实现原理详解
- Mysql分组查询group by语句详解
- MySQL分组查询Group By实现原理详解
- 详解MySQL分组查询Group By实现原理(1)
- MySQL分组查询Group By实现原理详解
- MySQL分组查询Group By实现原理详解
- mysql group_concat配合group by实现分组查询
- mysql group by 分组查询
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 关于mysql 简单的查询语句 以及常用函数的 总结
- mysql分组查询(group by)
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 关于mysql 简单的查询语句 以及常用函数的 总结
- MySQL中使用group by进行分组时,子查询中order by失效的问题
- MySQL-分组查询(GROUP BY)及二次筛选(HAVING)
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 数据库中Having放在分组函数group by后过滤查询组