聚合函数(分组查询)group by 字段
-
分组之后查询的字段:分组字段,聚合函数
-
分组之后查询的字段:分组字段,聚合函数
-
where 和 having 之间的区别;
- where在分组之前限定,如果不满足条件,则不参与分组。
- Having在分组之后限定,如果不满足结果,则不会被查询出来B.where后不可以跟聚合函数,having可以进行聚合函数的判断
示例:select avg(math),count(id) /人数,from stu where math > 70 group by sex having count(id)/人数 > 2; -
什么是分组查询?
就是将查询结果按照1个或多个字段进行分组,字段值相同的为一组其实就是按照某一列进行分类
示例:SELECT gender from employee GROUP BY gender; -
区别:
group by + having- 用来分组查询后制定一些条件来输出查询结果
- having的作用和where一样,但having只能用于group
- 示例:查询工资总和大于9000的部门名称以及工资总和
SELECT department,
GROUP_CONCAT(salary),SUM(salary) FROM employeeGROUP BY department HAVING SUM(salary) > 9000;
having和where的区别
- having是在分组后对数据进行过滤
- where是在分组前对数据进行过滤
- having后面可以使用分组函数(统计函数)
- where后面不可以使用分组函数
- where是对分组前记录的条件,如果是某行记录没有满足where子句的条件,那么这行记录不会参加分组;而having是对分组后数据的约束