- 高级查询:组函数
- 分组函数常用到以下五个函数:MIN、MAX、SUM、AVG、COUNT
- 分组函数语法:
- SELECT [column,] group_function(column)
- FROM table
- [WHERE condition]
- [GROUP BY column]
- [HAVING group_function(column)expression
- [ORDER BY column| group_function(column)expression];
- MIN、MAX、SUM、AVG函数
- select min(hiredate),max(hiredate) from emp
- select min(sal),max(sal),avg(sal),sum(sal),sum(sal)/14 from emp
- 查询职位以SALES开头的所有员工最低工资、最高工资、工资和、平均工资。
- select min(sal),max(sal),sum(sal),avg(sal)
- from emp where job like 'SALES%'
- select * from emp order by job desc
- COUNT函数
- 返回满足条件的每组记录条数。返回满足条件的【非空(NULL)行】的数量
- COUNT语法:
- COUNT(*|{[DISTINCT|ALL] column|expression})
- select * from emp
- select count(*) from emp
- null不参与count计算,所有分组函数会忽略null,即null不参与分组统计
- select count(*) from emp where deptno=30 and comm is not null
- select count(comm) from emp where deptno=30 and comm is not null
- select count(comm) from emp where deptno=30
- distinct 去重
- select count(deptno) from emp
- select count(distinct deptno) from emp
- IFNULL函数可以使分组函数强制包含含有空值的记录
- select sum(comm), avg(comm) from emp
- select avg(ifnull(comm,0)) from emp
- 创建数据组
- 语法:
- SELECT column, group_function(column)
- FROM table
- [WHERE condition]
- [GROUP BY group_by_expression]
- [ORDER BY column];
- 语法:
- 注
- SELECT列表中除分组函数外,其余所有列都必须包含在GROUP BY子句中
- GROUP BY所指定的列并不是必须出现在SELECT列表中
- 排除组结果 HAVING
- 语法:
- SELECT column, group_function
- FROM table
- [WHERE condition]
- [GROUP BY group_by_expression]
- [HAVING group_condition]
- [ORDER BY column];
- 语法:
- select执行过程
- 1.通过FROM子句中找到需要查询的表;
- 2.通过WHERE子句进行非分组函数筛选判断;
- 3.通过GROUP BY子句完成分组操作;
- 4.通过HAVING子句完成组函数筛选判断;
- 5.通过SELECT子句选择显示的列或表达式及组函数;
- 6.通过ORDER BY子句进行排序操作。
MySQL第五天0320 组函数 MIN、MAX、SUM、AVG、COUNT,,,group by~ having
最新推荐文章于 2024-10-01 12:58:23 发布