美文网首页
第三天上午、分组、多表内连接、子查询(分页)查询

第三天上午、分组、多表内连接、子查询(分页)查询

作者: 别学编程 | 来源:发表于2020-08-06 06:25 被阅读0次

分组查询

聚合函数sum求和,avg平均值,count统计函数,max最大值,min最小值

求和和求平均值
表结构
image.png
下面测试下没有奖金的员工是否参与数值计算,下图四张图片中可以看出空值是不参与计算的
图1
图2
图3
图4
分组group by,分组注意:select后面只能出现分组的列,后面可以有聚合函数
分组查询
----练习
--1统计每年入职的人数:年份,人数
select to_char(hiredate,'YYYY') 年,count(empno)
from emp
group by to_char(hiredate,'YYYY');

--练习
--1.统计每年入职的人数:年份,人数
select to_char(hiredate,'YYYY') 年,count(empno)
from emp
group by to_char(hiredate,'YYYY');
--2. 按照职务job对人数进行统计
select job,count(empno) from emp group by job;
--3. 统计每个部门的平均工资,按平均工资降序排列
select deptno,avg(sal) 平均工资
from emp
group by deptno
order by 平均工资 DESC;
--4. 获取同一个上司下的人数
select mgr,count(deptno)
from emp
group by mgr;
--获取同一部门下,同一个上司下的人数
SELECT DEPTNO,MGR,count(empno)
from emp
group by deptno,mgr;

要注意函数的使用方法,特别注意

注意事项
--显示非销售人员工作名称及从事同一工作雇员的月工资总和
--
select job,sum(sal)
from emp
where job != 'salesman'
group by job
having sum(sal) >= 5000
order by sum(sal);

多表查询、内连接查询

从两张表中查询记录


多表查询

例题

--例题
select empno,ename,e.deptno,loc
from emp e,dept d
where e.deptno = d.deptno
and loc = 'CHICAGO'
例题运行结果

上午练习题

--练习
--1.统计每年每月入职的人数:年份,月份,人数
select to_char(hiredate,'yyyy') 年份,to_char(hiredate,'mm') 月份,count(ename) 姓名 from emp
group by to_char(hiredate,'yyyy'),to_char(hiredate,'mm');
--2. 按照部门编号及职务编号对人数进行统计
select deptno,job,count(ename) from emp group by deptno,job;
--3. 统计平均薪资大于5000的部门
select deptno,avg(sal) from emp group by deptno having avg(sal)>5000;
--4. 获取同一部门下,同一个上司下的人数
select deptno,mgr,count(ename) from emp group by deptno,mgr;
--5. 列出至少有三个员工的所有部门。
select deptno,count(ename) from emp group by deptno having count(ename)>3;
--6. 查看员工职务变更历史记录:员工编号,姓名,起始日期,终止日期,职务名称,部门名称
select empno 员工编号,ename 姓名,hiredate 起始日期,job 职务名称,dname 部门名称 from emp e,dept d
where e.deptno=d.deptno;
--7. 要求查询雇员的编号,姓名,部门编号,部门名称及部门位置(emp,dept),要求部门位置位于"CHICAGO"
select empno,ename,e.deptno,dname,loc from emp e,dept d
where e.deptno = d.deptno
and loc = 'CHICAGO'
--8. 统计各个部门的员工数(不包含空的部门),列出部门名称,人数 
select count(empno) 人数,dname 部门名称 from emp e,dept d
where e.deptno = d.deptno
group by dname
having count(empno)>1;
--9. 显示非销售人员工作名称及从事同一工作雇员的月工资总和,并且要满足从事同一工作的雇员的月工资合计大于5000,输出结果按月工资的合计升序排列
select sum(sal),job from emp
where job != 'SALESMAN' 
group by job having sum(sal)>5000 
order by sum(sal);
--10.输出每个部门的名字和平均工资 
select dname,avg(sal)from emp e,dept d
where d.deptno=e.deptno
group by dname;

相关文章

  • MySQL03

    DQL查询语句 分页查询 分组函数 分组查询 子查询 多表连接查询 1、分页查询 当数据库中数据过多时,不能一次全...

  • 2018-08-30

    今天学习了Oracle的多表连接,组函数,分组查询,子查询,常用函数。 多表连接有三种类型:内连接,外连接,自连接...

  • 第三天上午、分组、多表内连接、子查询(分页)查询

    分组查询 聚合函数sum求和,avg平均值,count统计函数,max最大值,min最小值 表结构 下面测试下没有...

  • 数据库查询语句

    条件与逻辑查询 模糊查询 范围查询 排序 聚合函数 分组 连接查询 分页 子查询

  • Python MySQL数据库2:数据库查询

    总体内容 一、数据准备、基本的查询 二、条件查询 三、排序 四、聚合、分组 五、分页 六、连接查询(多表的时候有用...

  • 003 多表查询, 事务和DCL.

    多表查询 多表查询: 笛卡尔积.内连接查询隐式内连接 : 使用where.eg: select * from ...

  • MySQL-高级查询

    嵌套查询(子查询) 把内层的查询结果作为外层的查询条件 示例 多表查询 多个表之间联合查询 连接查询 内连接 外连...

  • MySQL查询语句

    目录 一、查询准备 二、条件查询 三、排序 四、聚合函数 五、分组 六、分页 七、连接查询 八、自关联 九、子查询...

  • SQL语句常用命令整理---多表查询

    多表查詢之关连查询 多表数据连接查询,简称连接查询。本篇我们来一同学习多表连接查询的相关用法,主要內容有: 内连接...

  • SQL查询语句1

    复杂查询 = 简单查询 + 限定查询 + 查询排序 + 多表查询 + 分组统计查询 + 子查询。 面对所有的复杂查...

网友评论

      本文标题:第三天上午、分组、多表内连接、子查询(分页)查询

      本文链接:https://www.haomeiwen.com/subject/tmhnrktx.html