什么是分组
按照性别将班上同学分为男生一组,女生一组。
group by
/* 查看每个职位的最高、最低工资 */
select job,max(sale),min(sale) from emp group by job;
使用group by 语句
- 出现在select列表中的字段,如果出现的位置不是分组函数,那么必须出现在group by子句中。
因为分组函数是sal,所以job不在分组函数中,必须出现在group by子句中
如果不出现,均出错!!!
- 正确做法:
/* 查看不同职位的人数和平均工资 */
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子句!!!
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);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。