Oracle 子查询和组函数练习
SELECT * FROM emp;

SELECT * FROM dept;

1、查询公司员工工资的最大值,最小值,平均值和总和。
SELECT MAX(sal) AS 工资最大值, MIN(sal) AS 工资最小值
, AVG(sal) AS 工资平均值, SUM(sal) AS 工资总和
FROM emp;

2、查询各 job 的员工工资的最大值,最小值,平均值和总和。
SELECT job, MAX(sal), MIN(sal)
, AVG(sal), SUM(sal)
FROM emp
GROUP BY job;

3、选择具有各个 job 的员工人数
SELECT job, COUNT(job) AS 人数
FROM emp
GROUP BY job;

4、显示平均工资 >2000 的职位
SELECT job
FROM emp
GROUP BY job
HAVING AVG(sal) > 2000;

5、计算工资在 2000 以上,各种职位的平均工资大于 3000 的职位及平均工资。
SELECT job, AVG(sal)
FROM emp
WHERE sal > 2000
GROUP BY job
HAVING AVG(sal) > 3000;

6、找出每个部门的最高和最低工资
SELECT deptno, MAX(sal) AS 最高工资, MIN(sal) AS 最低工资
FROM emp
GROUP BY deptno;

7、显示出工作名称 (job) 中包含"MAN"的员工的平均工资,最高工资,最低工资及工资的和。
SELECT AVG(sal) AS 平均工资, MAX(sal) AS 最大工资
, MIN(sal) AS 最小工资, SUM(sal) AS 工资总和
FROM emp
WHERE job LIKE '%MAN%';

8、显示出 20 号部门的员工人数
SELECT deptno, COUNT(empno) AS 员工人数
FROM emp
WHERE deptno = 20
GROUP BY deptno;

9、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
SELECT ename AS 雇员姓名
FROM emp
WHERE deptno = (
SELECT deptno
FROM dept
WHERE dname = 'SALES'
);

10、列出薪金高于公司平均水平的所有雇员
SELECT *
FROM emp
WHERE sal > (
SELECT AVG(sal)
FROM emp
);

11.查询与“SCOTT”在同一个部门的员工
SELECT *
FROM emp
WHERE deptno = (
SELECT deptno
FROM emp
WHERE ename = 'SCOTT'
);

12.查找不在销售部 (SALES) 和财务部 (ACCOUNTING) 工作的雇员编号、姓名和部门编号。
SELECT empno, ename, deptno
FROM emp
WHERE deptno NOT IN (
SELECT deptno
FROM dept
WHERE dname = 'ACCOUNTING'
OR dname = 'SALES'
);

13.在 EMP 表中,找出每个超过他所在部门平均工资的员工编号,员工名称,薪水和部门编号。
SELECT empno, ename, sal, e2.deptno
FROM emp e1, (
SELECT deptno, AVG(sal) AS avgsal
FROM emp
GROUP BY deptno
) e2
WHERE e1.deptno = e2.deptno
AND sal > avgsal;

14、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门 30 中任何一个雇员的薪金。
SELECT ename, sal
FROM emp
WHERE sal = ANY (
SELECT sal
FROM emp
WHERE deptno = 30
);
SELECT ename, sal
FROM emp
WHERE sal IN (
SELECT sal
FROM emp
WHERE deptno = 30
);

15、列出各个部门 MANAGER(经理)的最低薪金
SELECT deptno, MIN(sal)
FROM emp
WHERE job = 'MANAGER'
GROUP BY deptno;

Oracle 子查询和组函数练习的更多相关文章
- oracle 子查询和组合函数
oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in ( ...
- 【软件实施面试】MySQL和Oracle联合查询以及聚合函数面试总结
软件实施面试系列文章第二弹,MySQL和Oracle联合查询以及聚合函数的面试总结.放眼望去全是MySQL,就不能来点Oracle吗?之前面过不少公司,也做过不少笔试题,现在已经很少做笔试题了.你肚子 ...
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...
- 一道Oracle子查询小练习
一道Oracle子查询小练习 昨天晚上躺在床上看Oracle(最近在学习这个),室友说出个题目让我试试.题目如下: 有如下表结构,请选择出成绩为前三名的人的信息(如果成绩相同,则算并列),表名为t ...
- 2.2 Oracle之DML的SQL语句之多表查询以及组函数
一.SQL的多表查询: 1.左连接和右连接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHE ...
- 【2017-03-12】SQL Sever 子查询、聚合函数
一.子查询 子查询:把一条查询语句,当做值来使用子句的查询结果必须是一列子句可以返回多行数据,但必须是一列 子句返回的值为一个值的时候: 例如: 我只知道c026这个编号,我要查询比这个车价格低的全部 ...
- Oracle子查询之简单子查询
Oracle 简单子查询 顾名思义,简单子查询是嵌套在 SQL 语句中的另一个SELECT 语句,并且子查询只返回一列数据 1,单行子查询: 子查询 (内查询) 在主查询之前一次执行完成.子查询的结果 ...
- Oracle 子查询
1.子查询在SELECT.UPDATE.DELETE语句内部可以出现SELECT语句.内部的SELECT语句结果可以作为外部语句中条件子句的一部分,也可以作为外部查询的临时表.子查询的类型有: ① 单 ...
- oracle 子查询因子化 浅谈(with的使用)
近来学习oracle,想要提高自己所写语句的效率和易读性,今天的笔记是关于子查询因子话这么一个东西 因子化的查询不一定可以提高效率,但是一定可以再提高程序的可读性方面成效显著 --with 语句 wi ...
随机推荐
- 居中div,居中浮动的元素
定位法:position:absolute 如果子级div有定义宽和高的话就可以用这个方法.注意:margin-top,和margin-left的值均为高和宽值的一半 margin:auto法 这个也 ...
- scrollbar样式
.friends-list-content { height: 520px; overflow-y: scroll; } .friends-list-content::-webkit-scrollba ...
- myeclipse注册码,可以用到2016年
myeclipse注册码,可以用到2016年 xiangyang kLR8ZF-655954-61677756068297221
- TypeError: only integer scalar arrays can be converted to a scalar index
TypeError: only integer scalar arrays can be converted to a scalar index 觉得有用的话,欢迎一起讨论相互学习~Follow Me ...
- 怎样在hibernate的HQL语句中使用mysql 的自定义函数?
问题:怎样在hibernate中使用mysql的函数? 1.hibernate支持原生态的sql语句查询,使用session.createSQLQuery()创建查询对象: 2.怎样在hql中使用my ...
- HDU 1811 拓扑排序 并查集
有n个成绩,给出m个分数间的相对大小关系,问是否合法,矛盾,不完全,其中即矛盾即不完全输出矛盾的. 相对大小的关系可以看成是一个指向的条件,如此一来很容易想到拓扑模型进行拓扑排序,每次检查当前入度为0 ...
- Web 开发人员需知的 Web 缓存知识
今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~~ 什么是Web缓存,为什么要使用它? Web ...
- Spring Boot中对log4j进行多环境不同日志级别的控制
之前介绍了在<Spring boot中使用log4j记录日志>,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需 ...
- 【leetcode 简单】 第八题 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...
- 2、Web基本介绍及Html语法介绍
1.1 Web基本介绍 1.web就是world wide web的缩写.称之为全球广域网,俗称www.2.我们可以将web理解为就是当前的一种互联网.对于我们来说更多的就是网站服务.3.网站我们可以 ...