mysql基础4-函数&子查询&sql命令

image.png

-- 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使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容