-- emp员工表
-- 查看10号部门最小工资
select min(sal) from emp where deptno=10;
-- 查看20号部门最高工资
select max(sal) from emp where deptno=20;
-- 查看30号部门的平均工资
select avg(sal) from emp where deptno=30;
-- 统计奖金列不是null值的员工人数
select count(comm) from emp; #4个 count() 统计的字段的非空值的数量
-- 统计2月份入职的所有员工的薪资总和
-- 1:2月份入职的所有员工
select empno,month(hiredate) 月份 from emp; # month('1991-10-15') 获取日期月份 year('1991-10-15') 获取日期年份 day('1991-10-15') 获取日期年份
select * from emp where month(hiredate)=2;
-- 2:薪资总和
select sum(sal) from emp where month(hiredate)=2;
-- 分组函数 group by ...having
求每个部门的平均工资
-- 1:按照部门的编号分组
select deptno,avg(sal) from emp group by deptno;
注意:分组之后,select 后面并不是所有的字段都可以接的
-- 分组:把重复的值去掉,只会保留一个
-- select ename -->多个值
-- group by后面跟的字段要能与select后面跟的字段一一对应
查询平均工资大于2000的部门的编号和平均工资
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;
-- where:条件筛选,where后面不可以接聚合函数,where单独使用使用
select * from emp where max(sal)>3000; #Invalid use of group function
-- having:条件筛选,having 后面可以接聚合函数,having搭配group by使用
网友评论