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 ...
随机推荐
- python---基础知识回顾(四)(模块sys,os,random,hashlib,re,序列化json和pickle,xml,shutil,configparser,logging,datetime和time,其他)
前提:dir,__all__,help,__doc__,__file__ dir:可以用来查看模块中的所有特性(函数,类,变量等) >>> import copy >>& ...
- extjs grid demo
Ext.onReady(function () { var store = Ext.create('Ext.data.Store', { fields: ['id', 'name', 'account ...
- Fast File System
不扯淡了,直接来写吧,一天一共要写三篇博客,还有两篇呢. 1. 这篇博客讲什么? Fast File System(FFS)快速文件系统,基本思想已经在在上一篇博客File System Implem ...
- 不修改代码优化 ASP.NET 网站性能的一些方法
本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不需要修改程序代码的.它们主要分为二个方面:1. 利用ASP.NET自身的扩展性进行优化.2. 优化IIS设置. 配置OutputCach ...
- CURL 简介【转载】
转自http://hancang2010.blog.163.com/blog/static/1824602612010711104018261/ 0) 头信息 curl命令查询服务器头信息 curl ...
- ActiveMQ笔记之安装(Linux)
1. 基本概念 MQ(MessageQueue),消息队列,是一个消息接收和转发的容器. Apache ActiveMQ是一个JMS Provider实现. 2. 安装 从官网下载安装包: wget ...
- 60、简述 yield和yield from关键字。
1.可迭代对象与迭代器的区别 可迭代对象:指的是具备可迭代的能力,即enumerable. 在Python中指的是可以通过for-in 语句去逐个访问元素的一些对象,比如元组tuple,列表list ...
- 仿360影视网站模板html
链接:http://pan.baidu.com/s/1mhIkV4s 密码:9wgq
- pycharm显示行号
在PyCharm 里,显示行号有两种办法: 1,临时设置.右键单击行号处,选择 Show Line Numbers. 但是这种方法,只对一个文件有效,并且,重启PyCharm 后消失. 2,永久设置. ...
- 【Python学习】csv库
csv(Comma-Separated Values, 逗号分割值)是存储表格数据的常用文件格式. 它每一行都用一个换行符分隔,列与列之间用逗号分隔. 本地文件 Python的csv库可以非常简单地修 ...