MySQL——分组查询

什么是分组

按照性别将班上同窗分为男生一组,女生一组。函数

group by

/* 查看每一个职位的最高、最低工资 */
select job,max(sale),min(sale) from emp group by job;

使用group by 语句

  • 出如今select列表中的字段,若是出现的位置不是分组函数,那么必须出如今group by子句中。

由于分组函数是sal,因此job不在分组函数中,必须出如今group by子句中
图片描述
若是不出现,均出错!!!
图片描述
图片描述spa

  • 正确作法:
/* 查看不一样职位的人数和平均工资 */
select job,count(empno),avg(sal) from emp group by job;
  • 错误作法:
/* deptno和job都应该出如今group by后面 */
select deptno,job,count(empno),avg(sal) from emp group by job;

group by子句后面不能含有where子句!!!code

having

对分组的结果,进行筛选图片

/* 查询平均工资大于2000的部门和其平均工资 */
select deptho avg(sal) from emp group by deptno having avg(sal)>2000;

图片描述

/* 显示每年入职公司各多少人 */
select year(hiredate),count(empno) from emp group by year(hiredate);

图片描述